微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ioredis - 处理连接重试和 ECONNRESET

如何解决ioredis - 处理连接重试和 ECONNRESET

如果有任何网络问题,我正在尝试处理 redis 重试连接。看起来它正在工作,但我不确定,因为有时我会收到 ECONNRESET

redisOptions: {
        sentinels: [
            { host: process.env.redis_server_1,port: process.env.redis_port_1 },{ host: process.env.redis_server_2,port: process.env.redis_port_2 },{ host: process.env.redis_server_3,port: process.env.redis_port_3 },],name: 'mymaster'
    },

redisOptions 对象在配置文件中定义。

    function updateConfigurations(){
       console.log(configuration.redisOptions);
       configuration.redisOptions.sentinelRetryStrategy = (times) => {
        console.log('Trying to connect to Redis ',times);
        return Math.min(times * 100,10000);
       }
   //  configuration.redisOptions.retryStrategy = (times) => Math.min(times * 50,2000);
   }
    

我正在通过断开与 VPN 的连接来对此进行测试。我与 VPN 断开连接的那一刻,控制台上会打印以下错误消息。

[ioredis] Unhandled error event: Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:209:20)

然后在日志下面重试连接

[ioredis] Unhandled error event: Error: All sentinels are unreachable. retrying from scratch after 400ms. Last error: Connection is closed.

这是处理重试连接的正确方法吗?我应该如何处理 ECONNRESET

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。