узел-redis Имеет ли retry_strategy значение по умолчанию?

#node.js #redis #node-redis

Вопрос:

Соединение Redis было действительным даже тогда, когда redis-сервер был остановлен и перезапущен без опции retry_strategy.

 const conn = redis.createClient({
    host: 'redisUrl',
    port: 'redisPort',
    ...
    socket_keepalive : true   
});

redisClient.on('connect', () => {
    console.log(`connect`);
}).on('error', () => {
    console.log(`error`);
});
 

Почему?

Ответ №1:

Да, 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 предотвратит любую попытку повторного подключения.