我有这个 redis 缓存,其中值每天设置大约 100 次。完美运行几天后,我收到连接错误“已达到最大客户端数”。重新启动服务器后,它现在工作正常,但我想在将来避免这个问题。
在我看来,一旦我创建了一个客户端对象,它就会保留在连接池中,并且永远不会被杀死或删除。
这是我的代码
r = redis.StrictRedis(host= host, port=6379, db=0)
r.set(key_name, data)
这是在一个迭代中。而且,我在 python 中使用 redis。
原文由 sjishan 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为你的 redis 连接在每个请求上实例化,导致它达到最大连接限制,你应该将你的 redis 实例保持在全局中,这将共享同一个 redis 实例,这不应该再导致太多连接。 redis 实例将有自己的连接池,您可以通过将 max_connections 参数设置为 redis.ConnectionPool 来限制连接数。如果设置了 max_connections,则当达到池的限制时,此对象会引发 redis.ConnectionError。