这里要求Jedis的版本为2.6.0
import com.mmall.utils.YamlUtils;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class RedisPool {
private static JedisPool jedisPool;
/**
* 最大连接数
*
* @info 2019-10-21 16:45 liuxi
* @param null
*/
private static Integer maxTotal = Integer.valueOf(YamlUtils.getString("redis.max.total"));
/**
* 在jedisPool中最小的idle状态的jedis市里的个数
*
* @info 2019-10-21 16:45 liuxi
* @param null
*/
private static Integer maxIdle = Integer.valueOf(YamlUtils.getString("redis.max.idle"));
/**
* 在jedisPool中最小的idle状态的jedis市里的个数
*
* @info 2019-10-21 16:45 liuxi
* @param null
*/
private static Integer minIdle = Integer.valueOf(YamlUtils.getString("redis.min.idle"));
/**
* 在borrow一个Jedis连接的时候是否要验证,验证过后的连接肯定是可以正常使用的
*
* @info 2019-10-21 16:45 liuxi
* @param null
*/
private static Boolean testOnBorrow = Boolean.valueOf(YamlUtils.getString("redis.test.borrow"));
/**
* 在Return一个Jedis连接的时候是否要验证,验证过后的连接肯定是可以正常使用的
*
* @info 2019-10-21 16:46 liuxi
* @param null
*/
private static Boolean testOnReturn = Boolean.valueOf(YamlUtils.getString("redis.test.return"));
private static String redisIp = YamlUtils.getString("redis.ip");
private static Integer redisPort = Integer.parseInt(YamlUtils.getString("redis.port"));
private static void initPool() {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(maxTotal);
config.setMaxIdle(maxIdle);
config.setMinIdle(minIdle);
config.setTestOnBorrow(testOnBorrow);
config.setTestOnReturn(testOnReturn);
/**
* 连接耗尽的时候,是否阻塞,false会抛出异常,true阻塞直到超时。默认为true。
* @info 2019-10-21 17:09 liuxi
*
*/
config.setBlockWhenExhausted(true);
jedisPool = new JedisPool(config, redisIp, redisPort, 1000 * 2);
}
static {
initPool();
}
public static Jedis getJedis() {
return jedisPool.getResource();
}
public static void returnBrokenResource(Jedis jedis) {
jedisPool.returnBrokenResource(jedis);
}
public static void returnResource(Jedis jedis) {
jedisPool.returnResource(jedis);
}
public static void main(String[] args) {
Jedis jedis = jedisPool.getResource();
jedis.set("geelykey", "geelyvalue");
returnResource(jedis);
jedisPool.destroy();//临时调用,销毁连接池中的所有连接
System.out.println("program is end");
}
}