即使在没有retry_strategy选项的情况下停止并重新启动redis-server,Redis连接仍然有效。
const conn = redis.createClient({
host: 'redisUrl',
port: 'redisPort',
...
socket_keepalive : true
});
redisClient.on('connect', () => {
console.log(`connect`);
}).on('error', () => {
console.log(`error`);
});为什么?
发布于 2021-10-12 02:12:43
是的,node-redis确实有其README中概述的默认策略。但是,所有这些函数现在都已弃用,取而代之的是 retry_strategy 函数。
具体来说,查找retry_max_delay、connect_timeout和max_attempts。
retry_max_delay null已弃用请改用retry_strategy。默认情况下,每次客户端尝试连接失败时,重新连接延迟几乎会加倍。此延迟通常会无限增长,但设置retry_max_delay会将其限制为以毫秒为单位提供的最大值。connect_timeout 3600000已弃用请改用retry_strategy。设置connect_timeout会限制客户端连接和重新连接的总时间。该值是以毫秒为单位提供的,从创建新客户端的那一刻开始计算,或者从连接断开时开始计算。最后一次重试将恰好在超时时间发生。默认情况下,尝试连接,直到超过默认系统套接字超时,并尝试重新连接,直到经过1小时。max_attempts 0已弃用请改用retry_strategy。默认情况下,客户端将尝试重新连接,直到连接为止。设置max_attempts会限制连接尝试的总次数。将其设置为1将阻止任何重新连接尝试。
https://stackoverflow.com/questions/66666210
复制相似问题