使用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中的Standalone Redis对象时发生。下面是我正在使用的代码,
var publisher = new redis(redisPort, redisHost);
任何解决方案将不胜感激。
答案 0 :(得分:1)
您可能可以尝试增加超时限制,因为ioredis
具有默认超时值。
通常我们将其设置为
new Redis({
connectTimeout: 10000
})
就您而言,既然有,
var publisher = new redis(redisPort, redisHost);
您将必须编辑代码以传递connectTimeout
参数,以相应地传递。
希望这会有所帮助。
答案 1 :(得分:1)
有些迟了,但将来可能会对其他人有所帮助。
const redis = new Redis({
port: <your_redis_port>,
host: <your_redis_hostname>,
connectTimeout: 10000
});