Redis连接池

当需要很多连接的时候,一般都是通过使用连接池获取连接,首先我们先自定义一个简单(没考虑高并发等复杂情况)的连接池,及进行相应设置

package com.redis.test;


import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
 * 
 * <p>title: JedisPoolUtil</p>
 * <p>Description: 池化</p>
 * @param  
 * @author 
 * @return 
 * 2018年6月10日下午1:00:44
 * @version
 */
public class JedisPoolUtil {
private static volatile JedisPool jedisPool = null;

private JedisPoolUtil() {}

public static JedisPool getJedisInstance() {
if(null == jedisPool) {
synchronized (JedisPoolUtil.class) {
if(null == jedisPool) {
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxActive(1000); //最大连接数
poolConfig.setMaxIdle(32); //最大空闲数
poolConfig.setMaxWait(100*1000); //最大等待时间
poolConfig.setTestOnBorrow(true);//是否检查连接可用性


jedisPool = new JedisPool(poolConfig, "192.xxx.x.x", 6379);
}
}
}

return jedisPool;
}

        //释放连接
public static void release(JedisPool jedisPool, Jedis jedis) {
if(null != jedis) {
jedisPool.returnResourceObject(jedis);
}
}

}

然后通过连接池获得连接:

package com.redis.test;


import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;


public class TestPool {
public static void main(String[] args) {
JedisPool jedisPool = JedisPoolUtil.getJedisInstance();
Jedis jedis = null;

try {
jedis = jedisPool.getResource();

jedis.set("aa", "bb");
} catch (Exception e) {
e.printStackTrace();
}finally {
JedisPoolUtil.release(jedisPool, jedis);
}
}

}

在linux下获取值


猜你喜欢

转载自blog.csdn.net/qq_32285039/article/details/80642027