[Docker应用系列·1] 浅析Jedis Pool
本文环境:
jedis 2.1.0
redis 2.8.13
Redis无响应
我们的各个子系统均使用Jedis作为Redis的Java Client读写数据。
Jedis底层使用Apache的Common Pool,每个Jedis对象在底层都视为一个Object。
当释放连接失败后,我们的做法只是输出错误日志,这会导致该连接无法回收再利用,最终服务器的连接池会被拖垮,现象就是我们遇到的无响应、重启就好。
此前我们分析过,现在得出的结论是:这不是服务器操作系统连接数的问题,也不是数据频繁读写的问题,而是释放资源时遇到异常时,我们没有将该连接直接断掉、丢弃。
如下是AEnv代码的相关变更情况,仅做参考:
高效读写调研
常用的Jedis读写方式包括:set/get、hset/hget和mset/mget,分别用作基本读写、hash读写和批量读写。
对此,我