我有这个redis缓存,其值每天设置约100次.完全运行几天后,我收到连接错误“达到最大客户端数量”.重新启动服务器后,它现在正常工作,但我想在将来避免这个问题.
在我看来,一旦我创建了一个客户端对象,它就会停留在连接池中,永远不会被杀死或删除.
这是我的代码
r = redis.StrictRedis(host= host, port=6379, db=0)
r.set(key_name, data)
这是在迭代中.而且,我在python中使用redis.
解决方法:
我认为你的redis连接在每个请求上实例化,导致它达到最大连接限制,你应该将你的redis实例保存在全局中,这将共享相同的redis实例,这不应该导致太多的连接了. redis实例将拥有自己的连接池,您可以通过将max_connections参数设置为redis.ConnectionPool来限制连接数.如果设置了max_connections,则此对象在达到池限制时引发redis.ConnectionError.
POOL = redis.ConnectionPool(host= host, port=6379, db=0)
r = redis.StrictRedis(connection_pool=POOL)
标签:python,redis 来源: https://codeday.me/bug/20190910/1800732.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。