当我的脚本空闲一段时间时,我得到了以下错误。我不明白为什么会这样。
error: [ioredis] Unhandled error event:
error: Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:111:27)
error: [ioredis] Unhandled error event
error: Error: read ETIMEDOUT
at TCP.onStreamRead (internal/stream_base_commons.js:111:27)
我将redis客户端初始化为:
let redis = require("ioredis");
redis = Promise.promisifyAll(redis);
const redis = new redis({
host: "my hostname",
port: 6379,
password: "some password"
});
我正在使用ioredis客户端。
有人知道原因吗?默认情况下,“保持活动”已启用,如此处所示https://github.com/luin/ioredis/blob/master/api.md
我希望客户端永远不会超时,如果发生超时,则重新连接。我正在使用azure的redis服务。
1条答案
按热度按时间webghufk1#
我们有一个完整的文档涵盖了这个主题:解决redis超时的azure缓存问题
如果使用stackexchange.redis客户端,建议使用以下模式的最佳实践:
对于ioredis,可以设置客户端属性:
[options.lazyConnect]
您还需要查看客户端可用的任何重试方法。我希望这有帮助。