精华内容
下载资源
问答
  • 3.在项目src目录下创建一个后缀名为.properties文件类型的文件.笔者创建的是redis.properties文件,内容如下:1.host(主机地址)=192.168.78.134(此地址为虚拟机的地址,也可以设置为自己的本机地址:127.0.0.1)2....

    1.首先创建java项目.

    2.将Redis相关jar包导入项目中lib目录下。

    3.在项目src目录下创建一个后缀名为.properties文件类型的文件.笔者创建的是redis.properties文件,内容如下:

    1.host(主机地址)=192.168.78.134(此地址为虚拟机的地址,也可以设置为自己的本机地址:127.0.0.1)

    2.port(端口号)=6379

    3.MaxTotal(连接池最大连接数)=50

    4.MinIdle(连接池最小空闲连接数)=10

    5.MaxIdle(连接池最大空闲连接数)=20

    6.MaxWaitMillis(连接池最大等待时间)=100(毫秒)


    7.创建工具类,代码如下,返回值为连接池中的一个连接对象,可以在其余类中调用工具类直接获取连接池的一个对象。

    public class RedisUtil {
    	        //因为只需加载一次创建连接池方法,故使用静态代码块方法加载
    	        private static JedisPool jedisPool = null;
    	        static{
    		        //读取配置文件,获得文件中的属性配置
    			Properties properties = new Properties();
    			try {
    				properties.load(RedisUtil.class.getResourceAsStream("redis.properties"));
    				//获取配置文件中的属性
    				String host = properties.getProperty("host");
    				int port = Integer.parseInt(properties.getProperty("port"));
    				int MaxTotal = Integer.parseInt(properties.getProperty("MaxTotal"));
    				int MinIdle = Integer.parseInt(properties.getProperty("MinIdle"));
    				int MaxIdle = Integer.parseInt(properties.getProperty("MaxIdle"));
    				int MaxWaitMillis = Integer.parseInt(properties.getProperty("MaxWaitMillis"));
    				//创建连接池配置文件对象
    				GenericObjectPoolConfig config = new GenericObjectPoolConfig();
    				config.setMaxTotal(MaxTotal);
    				config.setMinIdle(MinIdle);
    				config.setMaxIdle(MaxIdle);
    				config.setMaxWaitMillis(MaxWaitMillis);
    				//创建连接池
    			 jedisPool = new JedisPool(config, host,port);
    			} catch (IOException e) {
    				e.printStackTrace();
    				throw new RuntimeException(e);
    			}
    			
    	}
    
    	public static Jedis getConnection(){
    		return jedisPool.getResource();
    	}
    }


    展开全文
  • Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。...首先我们需要搭建好Redis服务器,这里...下面我们就通过创建一个Redis连接池...

    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。在编码过程中,可能一些计算或者取数的量很大,超过了HTTP协议设置的超时时间,这就需要Redis来处理了。

    首先我们需要搭建好Redis服务器,这里暂不做介绍。当服务器搭建好,接口已经写好,我们该怎么去使用呢?下面我们就通过创建一个Redis连接池的方式,来更方便的使用Redis。创建Redis工具类,首先导入jar,如:jedis-2.5.1.jar,代码如下:

    public class RedisUtil{

    //Redis服务器IP

    private static String URL = "10.11.12.13";

    //Redis的端口号

    private static int PORT = 6379;

    //可用连接实例的最大数目,默认值为8

    private static int MAX_ACTIVE = 1024;

    //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8

    private static int MAX_IDLE = 200;

    //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时

    //如果超过等待时间,则直接抛出JedisConnectionException

    private static int MAX_WAIT = 20000;

    private static int TIMEOUT = 10000;

    //在borrow一个jedis实例时,是否提前进行validate操作,如果为true,则得到的jedis实例均是可用的

    private static boolean TEST_ON_BORROW = true;

    private static JedisPool jedisPool = null;

    /**

    * 初始化Redis连接池

    */

    static {

    try{

    JedisPoolConfig config = new JedisPoolConfig();

    config.setMaxIdle(MAX_ACTIVE);

    config.setMaxIdle(MAX_IDLE);

    config.setMaxWaitMillis(MAX_WAIT);

    config.setTestOnBorrow(TEST_ON_BORROW);

    jedisPool = new JedisPool(config, URL, PORT, TIMEOUT);

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    /**

    * 获取Jedis实例

    * @return

    */

    public synchronized static Jedis getJedis() {

    Jedis redis = null;

    try{

    if(jedisPool != null){

    redis = jedisPool.getResource();

    return redis;

    }else{

    return null;

    }

    } catch (Exception e){

    e.printStackTrace();

    return null;

    }

    }

    /**

    * 释放jedis资源

    * @param jedis

    */

    public static void returnResource(final Jedis jedis){

    if(jedis != null){

    jedisPool.returnResource(jedis);

    }

    }

    /*

    * Test

    */

    @Test

    public void main(){

    //测试Redis服务器的连接

    Jedis jedis = new Jedis(URL,6379);

    System.out.println(jedis.ping());

    //测试Redis取数(需先确定redis key存储类型,这里是hashMap)

    Jedis jedis = getJedis();

    Map ss = jedis.hgetAll("TEST");

    }

    }

    上面是Java类中对Redis的使用,具体的接口可根据自己需要定义。

    展开全文
  • Java 搭建Redis连接池工具类 撸了今年阿里、腾讯和美团的面试,我有一个重要发现…>> Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供...

    Java 搭建Redis连接池工具类
    撸了今年阿里、腾讯和美团的面试,我有一个重要发现…>>
    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。在编码过程中,可能一些计算或者取数的量很大,超过了HTTP协议设置的超时时间,这就需要Redis来处理了。

    首先我们需要搭建好Redis服务器,这里暂不做介绍。当服务器搭建好,接口已经写好,我们该怎么去使用呢?下面我们就通过创建一个Redis连接池的方式,来更方便的使用Redis。创建Redis工具类,首先导入jar,如:jedis-2.5.1.jar,代码如下:
    
    public class RedisUtil{
      
       //Redis服务器IP
       private static String URL = "10.11.12.13";
       //Redis的端口号
       private static int PORT = 6379;
       //可用连接实例的最大数目,默认值为8
       private static int MAX_ACTIVE = 1024;
       //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8
       private static int MAX_IDLE = 200;
       //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时
       //如果超过等待时间,则直接抛出JedisConnectionException
       private static int MAX_WAIT = 20000;
       private static int TIMEOUT = 10000;
       //在borrow一个jedis实例时,是否提前进行validate操作,如果为true,则得到的jedis实例均是可用的
       private static boolean TEST_ON_BORROW = true;
       
       private static JedisPool jedisPool = null;
    
       /**
        * 初始化Redis连接池
        */
       static {
          try{
             JedisPoolConfig config = new JedisPoolConfig();
             config.setMaxIdle(MAX_ACTIVE);
             config.setMaxIdle(MAX_IDLE);
             config.setMaxWaitMillis(MAX_WAIT);
             config.setTestOnBorrow(TEST_ON_BORROW);
             jedisPool = new JedisPool(config, URL, PORT, TIMEOUT);
          } catch (Exception e) {
             e.printStackTrace();
          }
       }
    
       /**
        * 获取Jedis实例
        * @return
        */
       public synchronized static Jedis getJedis() {
            Jedis redis = null;
            try{
               if(jedisPool != null){
                  redis = jedisPool.getResource();
                  return redis;
               }else{
                  return null;
               }
            } catch (Exception e){
                 e.printStackTrace();
                 return null;
            }
       }
    
       /**
        * 释放jedis资源
        * @param jedis
        */
       public static void returnResource(final Jedis jedis){
           if(jedis != null){
               jedisPool.returnResource(jedis);
           }
       }
    
       /*
    	* Test
    	*/
       @Test
       public void main(){
           //测试Redis服务器的连接
           Jedis jedis = new Jedis(URL,6379);
           System.out.println(jedis.ping());
           //测试Redis取数(需先确定redis key存储类型,这里是hashMap)
           Jedis jedis = getJedis();
           Map<String, String> ss = jedis.hgetAll("TEST");
       }
    }
    

    上面是Java类中对Redis的使用,具体的接口可根据自己需要定义。

    展开全文
  • Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。...首先我们需要搭建好Redis服务器,这里...下面我们就通过创建一个Redis连接池...

    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。在编码过程中,可能一些计算或者取数的量很大,超过了HTTP协议设置的超时时间,这就需要Redis来处理了。

    首先我们需要搭建好Redis服务器,这里暂不做介绍。当服务器搭建好,接口已经写好,我们该怎么去使用呢?下面我们就通过创建一个Redis连接池的方式,来更方便的使用Redis。创建Redis工具类,首先导入jar,如:jedis-2.5.1.jar,代码如下:

    public class RedisUtil{

    //Redis服务器IP

    private static String URL = "10.11.12.13";

    //Redis的端口号

    private static int PORT = 6379;

    //可用连接实例的最大数目,默认值为8

    private static int MAX_ACTIVE = 1024;

    //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8

    private static int MAX_IDLE = 200;

    //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时

    //如果超过等待时间,则直接抛出JedisConnectionException

    private static int MAX_WAIT = 20000;

    private static int TIMEOUT = 10000;

    //在borrow一个jedis实例时,是否提前进行validate操作,如果为true,则得到的jedis实例均是可用的

    private static boolean TEST_ON_BORROW = true;

    private static JedisPool jedisPool = null;

    /**

    * 初始化Redis连接池

    */

    static {

    try{

    JedisPoolConfig config = new JedisPoolConfig();

    config.setMaxIdle(MAX_ACTIVE);

    config.setMaxIdle(MAX_IDLE);

    config.setMaxWaitMillis(MAX_WAIT);

    config.setTestOnBorrow(TEST_ON_BORROW);

    jedisPool = new JedisPool(config, URL, PORT, TIMEOUT);

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    /**

    * 获取Jedis实例

    * @return

    */

    public synchronized static Jedis getJedis() {

    Jedis redis = null;

    try{

    if(jedisPool != null){

    redis = jedisPool.getResource();

    return redis;

    }else{

    return null;

    }

    } catch (Exception e){

    e.printStackTrace();

    return null;

    }

    }

    /**

    * 释放jedis资源

    * @param jedis

    */

    public static void returnResource(final Jedis jedis){

    if(jedis != null){

    jedisPool.returnResource(jedis);

    }

    }

    /*

    * Test

    */

    @Test

    public void main(){

    //测试Redis服务器的连接

    Jedis jedis = new Jedis(URL,6379);

    System.out.println(jedis.ping());

    //测试Redis取数(需先确定redis key存储类型,这里是hashMap)

    Jedis jedis = getJedis();

    Map ss = jedis.hgetAll("TEST");

    }

    }

    上面是Java类中对Redis的使用,具体的接口可根据自己需要定义。

    展开全文
  • 其实,在《Java Web基础入门第五十七讲 数据库连接池》这篇文章中,我就已详细介绍过如何编写一个自己的数据库连接池了。本文只不过是再一次的重温。 一个非常简单的自定义数据库连接池 该小节只是简单模拟一个池子...
  • Java使用JDBC开发 之 DBCP连接池

    千次阅读 2019-08-04 01:23:57
    2、编写工具类并使用 连接池概述 在实际开发中,“获得连接”和“释放资源”是非常消耗系统资源的两过程,为了解决此类性能问题,通常会采用连接池技术,来共享连接 Connection,这样就不需要每次都创建连接...
  • jdbc java操作数据库.jdbc是oracle公司指定的一套规范(一套接口) 驱动:jdbc的实现.由数据库厂商提供. 我们就可以通过一套规范操作不同的...2.创建一个项目 3.导入驱动jar包 4.编码: 注册驱动 获取连接 编写...
  • 使用步骤 导入相应jar包(下述以mysql驱动包为例) 添加配置文件 (配置文件必须放在src目录下) ...是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.ja...
  • DBCP连接池技术详解

    2017-10-15 14:23:38
    DBCP连接池 DBCP也是一个开源的连接池,...连接数据库表的工具类, 采用DBCP连接池的方式来完成,Java中提供了一个连接池的规则接口 : DataSource : 它是java中提供的连接池,作为 DriverManager 工具的替代项。在D
  • 【JDBC】DBCP连接池

    2021-02-08 02:30:17
    一、DBCP连接池 DBCP也是一个开源的连接池,是Apache...Java中提供了一个连接池的规则接口 : DataSource , 它是java中提供的连接池 在DBCP包中提供了DataSource接口的实现,我们要用的具体的连接池 BasicDataSource
  • 一、什么是jdbc 1.JDBC(Java DataBase Connectivity,java数据库连接)是一种用于...2.jdbc的java api有哪些,四个常用的接口和一个类(Connection接口、Statement接口、PreparedStatement接口、ResultSet接口和Dri
  •  我在之前的文章中写过一个JDBC的工具类,随着学习的深入,发现我们还可以利用连接池来改进我们自己写的工具类。之前工具类的文章!!!! 使用c3p0连接池改进后的JDBC工具类:(使用c3p0连接池的话需要引入他的jar...
  • 大家可以关注一下我的博客 我的博客所有随笔都是我从基础开始学习java的所有知识点 ...答 : 在Java语言中,有一个专门连接数据库的规范(JDBC),专门负责连接数据库进行数据操作的规范 JDBC只是SUN编写的一堆...
  • 数据库连接池

    2019-05-20 15:34:04
    JDBC(Java Data Base Connectivity,java数据库连接)是种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由组用Java语言编写和接口组成。是Java访问数据库的标准规范 JDBC提供了种基准...
  • WEB10_JDBC连接池&DBUtils

    2019-02-23 22:46:11
    章 使用连接池重写工具类 连接池原理 连接池理解为存放多个连接的集合。 目的:解决建立数据库连接耗费资源和时间很多的问题,提高性能 编写标准的数据源(规范) Java为数据库连接池提供了公共的接口:javax...
  • 【准备好java工具类工具类所需要的配置文件】前面文章有 【1 自定义连接池:MyDataSource.java】 自定义连接池编写步骤: 1、 实现javax.sql.DataSourse接口 2、 定义一个LinkedList集合存放连接池(增删...
  • 文章目录JDBC编程六步SQL注入问题即解决办法Statement的使用场景模糊查询JDBC事务JDBC工具类锁行级锁for update数据库连接池数据库连接池的具体实现技术JDBCTemplate 什么是JDBC? Java DataBase Connectivity 在java...
  • JDBC(Java Data Base Connectivity,java数据库连接)是种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由组用Java语言编写和接口组成。是Java访问数据库的标准规范。 JDBC提供了种...
  • C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展,设计非常简单易用C3P0的基本使用添加maven依赖mysqlmysql-connector-java5.1.44com.mchangec3p00.9.5编写C3P0工具类public...
  • java新人,尝试写了一个 JDBC 操作 SQLServer 的工具类,但是好像有问题,调用 insert 指令没问题,而 select 指令出现如下报错: com.microsoft.sqlserver.jdbc.SQLServerException: ')' 附近有语法错误。 at ...
  • 当然你可以编写自己的线程连接池来控制线程,但是java在1.5里已经提供了一个java.util.concurrent.ThreadPoolExecutor的,这个已经基本 实现了线程池的功能。 public class TaskExecutorPool { public ...
  • 在单线程程序中调用一个方法时 如果某个基于状态的前提条件未得到满足(例如 连接池必须非空) 那么这个条件将永远无法成真 因此 在编写顺序程序中的时 要使得这些在它们的前提条件未被满足时就失败 但在并发程序...
  • Java DB loadBalance设计

    2020-12-22 20:03:15
     JDBC(Java Data Base Connectivity,java数据库连接)是种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由组用Java语言编写和接口组成。JDBC提供了种基准,据此可以构建更高级的...
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
  • Java资源包01

    2016-08-31 09:16:25
    SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
  • java开源包101

    2016-07-13 10:11:08
    SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

java编写一个连接池工具类

java 订阅