1. jedis pool使用自己打包的jar读取property文件连接redis服务器。
但是配置文件里的参数得好好搞清楚
2. 经过多次研究,确认如下配置:
2032 $ cat JedisPoolConfig.properties
#最大分配的对象数
redis.pool.maxActive=1248
#最大/最小能够保持idel状态的对象数(超过最大则回收或者少于最小则创建)
redis.pool.maxIdle=80
redis.pool.minIdle=7
#当池内没有返回对象时,最大等待时间(毫秒)
redis.pool.maxWait=40000
#当调用borrow Object方法时,是否进行有效性检查
redis.pool.testOnBorrow=true
#当调用return Object方法时,是否进行有效性检查
redis.pool.testOnReturn=true
#IP
redis.ip=172.17.0.3
#Port
redis.port=6379
#超时时间(毫秒)
redis.timeout=40000
#Pwd
redis.pwd=XXXXX
3. 使用连接池后,网络socket数量通过"netstat -ano|grep 6379|wc -l"看到明显已降低。
4. 当前使用连接池方式为在代码中获取连接,最后释放即可:
import com.tm.mc.redis.MCRedisInstance;
Jedis jedis = MCRedisInstance.getInstance().getJedis();
jedis.close();
5. 当前使用连接池方式的不足:
当项目中需要连接多个redis服务器的时候,无法完成该需求。
因为默认jar包只会读取指定的一个配置文件,只能配置一个redis服务器。
后续若要实现,可以在原来jar包基础上判断配置文件的名称规范和数量,然后可以自动初始化连接到多个redis服务器的连接池。
6.后续将会把该思路延展到mongdb的连接池,进一步优化程序效率。