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 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下獲取值