首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >redis:已达到的最大客户端数量

问redis:已达到的最大客户端数量
EN

Stack Overflow用户
提问于 2018-06-18 21:31:23
回答 3查看 20.7K关注 0票数 9

我有这个redis缓存,每天大约要设置100次值。在完美地运行了几天后,我得到了连接错误“最大数量的客户达到”。在重新启动服务器后,它现在工作正常,但是我想在将来避免这个问题。

在我看来,一旦我创建了一个客户端对象,它就会留在连接池中,并且永远不会被终止或删除。

以下是我的代码

代码语言:javascript
复制
r = redis.StrictRedis(host= host, port=6379, db=0)
r.set(key_name, data)

这是在一个迭代中。而且,我正在使用python中的redis。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-18 21:47:47

我认为你的redis连接在每次请求时都是实例化的,导致它达到最大连接限制,你应该将你的redis实例放在全局中,这将共享相同的redis实例,这应该不会再导致太多的连接。redis实例将拥有自己的连接池,您可以通过将max_connections参数设置为redis.ConnectionPool来限制您的连接数。如果设置了max_connections,则此对象在达到池的限制时引发redis.ConnectionError。

代码语言:javascript
复制
POOL = redis.ConnectionPool(host= host, port=6379, db=0)
r = redis.StrictRedis(connection_pool=POOL)
票数 7
EN

Stack Overflow用户

发布于 2018-06-18 21:39:13

如果您不关闭客户端连接,它将永远保持打开状态。

https://redis.io/topics/clients

客户端超时默认情况下,如果客户端空闲很多秒,Redis的最新版本不会关闭与客户端的连接:连接将永远保持打开。

但是,如果您不喜欢此行为,则可以配置超时,以便如果客户端的空闲时间超过指定的秒数,则客户端连接将关闭。

您可以通过redis.conf或简单地使用CONFIG SET timeout配置此限制。

票数 9
EN

Stack Overflow用户

发布于 2021-09-10 04:12:25

这个问题有一个临时的解决方案。设置客户端连接的超时

在客户端空闲N秒后关闭连接(0表示禁用)

超时%0

如果我们设置超时120,它将关闭所有空闲连接,我们可以解决此错误配置设置超时120

登录到redis cli后

​

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50910697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档