今天服务器突然提示一台 redis 无法连接了 登上去一看 发现到这个 redis 服务器的连接基本都是 CLOSE_WAIT 状态 有十几万条 导致没法再建立新的连接
至于 redis 的用法也是 很传统的用法 就是服务启动的时候会初始化一个 redis.StrictRedis 的连接 然后就直接用
至于连接池 其实 StrictRedis 内部的实现就是用连接池的
后来查了 google 发现这个
http://russellluo.com/2017/10/redis-py-pool-cannot-handle-idle-close-wait-connections.html
v2 上也有人发过讨论: https://www.v2ex.com/t/237326 但没有提供解决方案
参考了第一个的方案 改进了一下 redis 连接池的 get_connection 方法 更新上去之后 效果很明显 确保了一个进程一条连接 失效了重新建立新的连接
看起来很完美的样子
我的疑问就是 既然都有这个问题 也有解决方案在那里 为什么这个 issue 都没人关注呢 还是大家都没遇到过这个问题吗
至于 redis 的用法也是 很传统的用法 就是服务启动的时候会初始化一个 redis.StrictRedis 的连接 然后就直接用
至于连接池 其实 StrictRedis 内部的实现就是用连接池的
后来查了 google 发现这个
http://russellluo.com/2017/10/redis-py-pool-cannot-handle-idle-close-wait-connections.html
v2 上也有人发过讨论: https://www.v2ex.com/t/237326 但没有提供解决方案
参考了第一个的方案 改进了一下 redis 连接池的 get_connection 方法 更新上去之后 效果很明显 确保了一个进程一条连接 失效了重新建立新的连接
看起来很完美的样子
我的疑问就是 既然都有这个问题 也有解决方案在那里 为什么这个 issue 都没人关注呢 还是大家都没遇到过这个问题吗