¿Por Qué Redis Sentinel?

Redis es un almacén de datos en memoria usado para caché, sesiones y mensajería. En producción, una instancia Redis única es un punto único de fallo. Redis Sentinel resuelve esto proporcionando monitoreo, failover automático y descubrimiento de servicio.

Requisitos Previos

  • Tres servidores Linux.
  • Redis 7.0+ instalado en todos los nodos.
  • Puertos abiertos: 6379 (Redis) y 26379 (Sentinel).

Configuración Paso a Paso

1. Configurar Master

bind 0.0.0.0
port 6379
requirepass "su-password-seguro"
masterauth "su-password-seguro"
appendonly yes

2. Configurar Réplicas

bind 0.0.0.0
port 6379
requirepass "su-password-seguro"
masterauth "su-password-seguro"
replicaof 192.168.1.101 6379
appendonly yes

3. Configurar Sentinel

port 26379
sentinel monitor mymaster 192.168.1.101 6379 2
sentinel auth-pass mymaster su-password-seguro
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000

4. Probar Failover

sudo systemctl stop redis-server   # En el master
redis-cli -p 26379 SENTINEL get-master-addr-by-name mymaster

Solución de Problemas

  • Quórum no alcanzado: Verifique con SENTINEL ckquorum mymaster.
  • Split-brain: Agregue min-replicas-to-write 1 y min-replicas-max-lag 10.
  • Cliente no reconecta: Use un cliente Sentinel-aware como redis-py.

Resumen

  • Redis Sentinel proporciona failover automático con al menos 3 instancias y quórum de 2.
  • Use min-replicas-to-write para prevenir pérdida de datos por split-brain.
  • Los clientes deben usar bibliotecas Sentinel-aware para manejar el failover.

Artículos Relacionados