如何为node_redis js

时间:2018-06-25 15:51:35

标签: sockets tcp redis timeout node-redis

使用 node_redis (js redis客户端)时,是否可以配置tcp连接超时?还是任何其他成熟的JS redis客户? 在我的产品环境中,当Redis服务器被杀死时,在重试连接时会出现非常长的TCP连接超时(如130秒)。因此,即使redis服务器在5秒钟内开始响应,我的应用程序仍挂起了130s + 3s(在retry_strategy中配置)。我的retry_strategy:

            retry_strategy: (options) => {
            if (options.error) {
                RedisStore.log.debug(`${options.error.message}. Reconnecting in 3000`);
            }
            return 3000;
        }

我的应用日志输出以显示该问题:

2018-06-25T14:05:16.031Z debug Redis connection has been closed. ("end" event)
2018-06-25T14:05:19.037Z debug Reconnecting with Redis. ("reconnecting" event)
2018-06-25T14:07:28.102Z debug Redis connection to nps-lw-iam-console-redis-master:6379 failed - connect ETIMEDOUT x.x.x.x:6379. Reconnecting in 3000ms. ("error" event - after 2min and 10s)

“结束”事件立即发出。问题在于“错误”事件需要花费很长时间才能发出,并且在此期间不会再次触发retry_strategy。 如何配置更短的超时时间?

0 个答案:

没有答案