Redis的JavaAPI主要是Jedis来操做,Jedis配置Jedis链接池时可能要调用一些方法设置一些基本属性,这里总结了一些经常须要配置的Jedis链接池方法,好记性不如烂笔头^-^web
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//链接超时时是否阻塞,false时报异常,ture阻塞直到超时, 默认true
jedisPoolConfig.setBlockWhenExhausted(true);
//逐出策略(默认DefaultEvictionPolicy(当链接超过最大空闲时间,或链接数超过最大空闲链接数))
jedisPoolConfig.setEvictionPolicyClassName("org.apache.commons.pool2.impl.DefaultEvictionPolicy");
//最大空闲链接数, 默认8个
jedisPoolConfig.setMaxIdle(8);
//最大链接数, 默认8个
jedisPoolConfig.setMaxTotal(8);
//获取链接时的最大等待毫秒数(若是设置为阻塞时BlockWhenExhausted),若是超时就抛异常, 小于零:阻塞不肯定的时间, 默认-1
jedisPoolConfig.setMaxWaitMillis(-1);
//逐出链接的最小空闲时间 默认1800000毫秒(30分钟)
jedisPoolConfig.setMinEvictableIdleTimeMillis(1800000);
//最小空闲链接数, 默认0
jedisPoolConfig.setMinIdle(0);
//每次逐出检查时 逐出的最大数目 若是为负数就是 : 1/abs(n), 默认3
jedisPoolConfig.setNumTestsPerEvictionRun(3);
//对象空闲多久后逐出, 当空闲时间>该值 且 空闲链接>最大空闲数 时直接逐出,再也不根据MinEvictableIdleTimeMillis判断 (默认逐出策略)
jedisPoolConfig.setSoftMinEvictableIdleTimeMillis(1800000);
// 获取链接时的最大等待毫秒数(若是设置为阻塞时BlockWhenExhausted),若是超时就抛异常, 小于零:阻塞不肯定的时间,
// 默认-1
jedisPoolConfig.setMaxWaitMillis(100);
//对拿到的connection进行validateObject校验
jedisPoolConfig.setTestOnBorrow(true);
//在进行returnObject对返回的connection进行validateObject校验
jedisPoolConfig.setTestOnReturn(true);
//定时对线程池中空闲的连接进行validateObject校验
jedisPoolConfig.setTestWhileIdle(true);