【问题标题】:ioredis Unhandled error event: Error: connect ETIMEDOUTioredis 未处理的错误事件:错误:连接 ETIMEDOUT
【发布时间】:2021-09-03 08:01:27
【问题描述】:

有没有人在使用 node js ioredis 包连接到独立的 redis 服务器时遇到以下错误?

以下是错误堆栈跟踪:

2018-08-16T10:52:18.351869060Z [ioredis] Unhandled error event: Error: connect ETIMEDOUT
2018-08-16T10:52:07.449457296Z at Timer.listOnTimeout (timers.js:207:5)
2018-08-16T10:52:07.449448499Z at tryOnTimeout (timers.js:237:5)
2018-08-16T10:52:07.449439722Z at ontimeout (timers.js:365:14)
2018-08-16T10:52:07.449430834Z at Socket._onTimeout (net.js:339:8)
2018-08-16T10:52:07.449421915Z at Socket.emit (events.js:185:7)
2018-08-16T10:52:07.449413002Z at emitNone (events.js:86:13)
2018-08-16T10:52:07.449403458Z at Socket.g (events.js:291:16)

仅在节点 js 中实例化独立 Redis 对象时会发生这种情况。下面是我正在使用的代码,

var publisher = new redis(redisPort, redisHost);

任何解决方案都将受到高度赞赏。

【问题讨论】:

    标签: node.js ioredis


    【解决方案1】:

    您或许可以尝试增加超时限制,因为ioredis 具有默认超时值。

    通常我们会将其设置为,

    new Redis({
      connectTimeout: 10000
    })
    

    在你的情况下,既然你有,

    var publisher = new redis(redisPort, redisHost);
    

    您必须编辑代码以传递 connectTimeout 参数以相应地传递。

    希望这会有所帮助。

    【讨论】:

    • 你能举例说明如何在我现有的代码行中传递该参数吗?
    • 好的,能否请您发布相关代码,分别设置redisPortredisHost 变量的值?
    • 感谢,结束了数小时的头撞墙!
    • @Oliver Krull,很高兴它有帮助! :-)
    • connectTimeout 的默认值为 10000 毫秒。
    【解决方案2】:

    这有点晚了,但可以在未来对其他人有所帮助。

    const redis = new Redis({
       port: <your_redis_port>,
       host: <your_redis_hostname>,
       connectTimeout: 10000
    });
    

    【讨论】:

      【解决方案3】:

      我正在使用 Heroku 维护的 Redis 客户端,由于某种奇怪的原因,Heroku 更改了 Redis 凭据,我一直面临同样的问题,直到我仔细检查旧凭据和 Heroku 上的凭据,我才意识到它们是不再相同,然后从 Heroku 复制新的并将其粘贴到我的 .env 文件中,现在一切都按预期工作!!!

      【讨论】:

      • 是的,同样的事情也发生在我身上。很奇怪。
      • 如果您在启动项目时碰巧创建了 Redis 客户端,则不会发生此错误,因为 Heroku 会自动为您更新凭据。此错误是单独创建项目的结果,然后您添加了 Redis 客户端插件。希望我的解释清楚。顺便谢谢你的投票!! :))
      猜你喜欢
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 2023-02-15
      • 2019-01-07
      • 1970-01-01
      • 2023-03-07
      • 2019-04-19
      • 2023-03-28
      相关资源
      最近更新 更多