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