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.

JavascriptNodeResilience

Code

snippet
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');