¿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 1ymin-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-writepara prevenir pérdida de datos por split-brain. - Los clientes deben usar bibliotecas Sentinel-aware para manejar el failover.