我正在使用forever npm 模块运行nodeJS 应用程序。
节点应用程序还连接到 Redis DB 进行缓存检查。API 通常会停止工作,并在永久日志中出现以下错误。
{ 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' }
Run Code Online (Sandbox Code Playgroud)
当我在 redis 服务器上执行client list命令时,它显示太多打开的连接。我还在timeout = 3600我的 Redis 配置中进行了设置。
我的应用程序代码中没有任何未关闭的 Redis 连接对象。
根据应用程序负载,这种情况每周会发生一两次,作为权宜之计,我正在重新启动节点服务器(它可以工作)。
在这种情况下,永久的解决方案是什么?