redis error“已达到最大客户端数”

0mkxixxg  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(478)

我正在使用forever npm模块运行nodejs应用程序。
节点应用程序还连接到redis db进行缓存检查。通常,api会停止处理forever日志上的以下错误。

{ ReplyError: Ready check failed: ERR max number of clients reached
    at parseError (/home/myapp/core/node_modules/redis/node_modules/redis-parser/lib/parser.js:193:12)
    at parseType (/home/myapp/core/node_modules/redis/node_modules/redis-parser/lib/parser.js:303:14)
    at JavascriptRedisParser.execute (/home/myapp/ecore/node_modules/redis/node_modules/redis-parser/lib/parser.js:563:20) command: 'INFO', code: 'ERR' }

当我执行 client list 命令显示太多打开的连接。我还设置了 timeout = 3600 在我的redis配置中。
我的应用程序代码中没有任何未关闭的redis连接对象。
根据应用程序负载的不同,这种情况每周发生一到两次,作为权宜之计,我正在重新启动节点服务器(它可以工作)。
在这种情况下,什么是永久的解决办法?

ccrfmcuu

ccrfmcuu1#

我已经知道原因了。这与redis无关。我在一个web应用程序中使用redis,并且为每个新请求创建了连接。
偶尔重新启动服务器时,express服务器中断的所有连接都会被释放。
我通过创建一个全局连接对象并重新使用它来解决这个问题。新连接仅在必要时创建。

相关问题