IORedis Reconnect Strategy and Sentinel Failover
Harden ioredis connections with retry backoff, command timeouts, and sentinel failover so cache clients survive restarts and primary swaps.
Code
import Redis from 'ioredis';
const client = new Redis({
sentinels: [
{ host: '10.0.0.11', port: 26379 },
{ host: '10.0.0.12', port: 26379 },
],
name: 'mymaster',
password: process.env.REDIS_PASSWORD,
sentinelRetryStrategy: (times) => Math.min(times * 200, 5000),
retryStrategy: (times) => Math.min(times * 100, 3000),
maxRetriesPerRequest: 2,
commandTimeout: 1500,
enableOfflineQueue: false,
});
client.on('error', (err) => console.error('redis error:', err.message));
client.on('reconnecting', (delay) => console.log('reconnecting in', delay, 'ms'));
await client.set('session:42', 'active', 'EX', 900);
const state = await client.get('session:42');Report a problem with this exampleOpens a pre-filled issue on GitHub.