Jedis Pool暂时的不足,无法连接多个redis服务器

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的连接池,进一步优化程序效率。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容