JedisPoolConfig中方法解读

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);