今天服务器突然提示一台 redis 无法连接了 登上去一看 发现到这个 redis 服务器的连接基本都是 CLOSE_WAIT 状态 有十几万条 导致没法再建立新的连接
至于 redis 的用法也是 很传统的用法 就是服务启动的时候会初始化一个 redis.StrictRedis 的连接 然后就直接用
至于连接池 其实 StrictRedis 内部的实现就是用连接池的
后来查了 google 发现这个
http://russellluo.com/2017/10/redis-py-pool-cannot-handle-idle-close-wait-connections.htmlv2 上也有人发过讨论:
https://v2ex.ih06.com/t/237326 但没有提供解决方案
参考了第一个的方案 改进了一下 redis 连接池的 get_connection 方法 更新上去之后 效果很明显 确保了一个进程一条连接 失效了重新建立新的连接
看起来很完美的样子
我的疑问就是 既然都有这个问题 也有解决方案在那里 为什么这个 issue 都没人关注呢 还是大家都没遇到过这个问题吗
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://v2ex.ih06.com/t/416910
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.