错误:[ioredis]未处理的错误事件:错误:连接ETIMEDOUT

时间:2019-05-23 11:45:10

标签: node.js redis

我在节点应用程序中遇到了Redis连接超时的问题。

我已经尝试过此代码,

new Redis({
  connectTimeout: 10000
})

但是没用对代码没有帮助

[ioredis] Unhandled error event: Error: connect ETIMEDOUT
    at Socket.<anonymous> (/code/node_modules/ioredis/lib/redis.js:291:21)
    at Object.onceWrapper (events.js:313:30)
    at emitNone (events.js:106:13)
    at Socket.emit (events.js:208:7)
    at Socket._onTimeout (net.js:407:8)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)

1 个答案:

答案 0 :(得分:0)

当您说容器时,我假设您的意思是docker containers。如果您使用的是docker网络,我相信您可以随时将主机更改为网络中docker容器的名称。如果您使用的是docker-compose,请按照以下步骤进行操作:

version: '3'
services:
  app:
   image: app_image
   depends_on:
    - redis
   networks:
    - app_network
  redis:
   image: redis
   networks:
    - app_network
networks:
  app_network: {}

因此,在您的应用中,您会这样做

redis = new Redis({
  host: 'redis://redis'
})