Redis Sentinel es una herramienta de alta disponibilidad para Redis que proporciona monitoreo, notificación y conmutación por error automática. Sentinel permite que un clúster de Redis sea más robusto y tolerante a fallos, asegurando que el sistema pueda seguir funcionando incluso si uno o más nodos fallan.
Objetivos de Aprendizaje
Al final de esta sección, deberías ser capaz de:
- Comprender qué es Redis Sentinel y por qué es importante.
- Configurar Redis Sentinel para monitorear instancias de Redis.
- Implementar la conmutación por error automática con Sentinel.
- Monitorear y mantener un clúster de Redis utilizando Sentinel.
¿Qué es Redis Sentinel?
Redis Sentinel es una solución integrada en Redis que proporciona las siguientes funcionalidades clave:
- Monitoreo: Sentinel verifica constantemente si tus instancias de Redis están funcionando como se espera.
- Notificación: Sentinel puede notificar a los administradores del sistema o a otras aplicaciones sobre problemas en las instancias de Redis.
- Conmutación por Error: Si una instancia maestra de Redis falla, Sentinel puede promover una de las réplicas a maestra.
- Descubrimiento de Configuración: Las aplicaciones pueden conectarse a Sentinel para descubrir la dirección del maestro actual.
Configuración Básica de Sentinel
Paso 1: Configurar las Instancias de Redis
Primero, asegúrate de tener varias instancias de Redis configuradas para la replicación. Aquí hay un ejemplo de configuración para una instancia maestra y dos réplicas.
redis-master.conf
redis-replica1.conf
redis-replica2.conf
Paso 2: Configurar Sentinel
Crea un archivo de configuración para Sentinel. Aquí hay un ejemplo básico:
sentinel.conf
port 26379 bind 127.0.0.1 # Monitorea la instancia maestra sentinel monitor mymaster 127.0.0.1 6379 2 # Configura el tiempo de espera para considerar que el maestro está caído sentinel down-after-milliseconds mymaster 5000 # Configura el tiempo de espera para la conmutación por error sentinel failover-timeout mymaster 10000 # Configura cuántas réplicas deben estar de acuerdo para promover una nueva maestra sentinel parallel-syncs mymaster 1
Paso 3: Iniciar Sentinel
Inicia Sentinel utilizando el archivo de configuración creado:
Monitoreo y Conmutación por Error
Monitoreo
Sentinel monitorea las instancias de Redis configuradas y verifica su estado a intervalos regulares. Si una instancia maestra no responde dentro del tiempo configurado (down-after-milliseconds
), Sentinel la marca como caída.
Conmutación por Error
Si Sentinel determina que la instancia maestra está caída, inicia el proceso de conmutación por error:
- Elección de una Nueva Maestra: Sentinel elige una de las réplicas para promoverla a maestra.
- Promoción: La réplica seleccionada se convierte en la nueva maestra.
- Reconfiguración de Réplicas: Las otras réplicas se reconfiguran para replicar desde la nueva maestra.
Ejemplo Práctico
Supongamos que tienes una instancia maestra y dos réplicas configuradas y funcionando. Aquí hay un ejemplo de cómo Sentinel manejaría una conmutación por error:
- La instancia maestra (puerto 6379) falla.
- Sentinel detecta la falla después de 5 segundos (
down-after-milliseconds
). - Sentinel elige una de las réplicas (puerto 6380 o 6381) para promoverla a maestra.
- La réplica seleccionada se convierte en la nueva maestra.
- Las otras réplicas se reconfiguran para replicar desde la nueva maestra.
Ejercicio Práctico
Ejercicio 1: Configuración de Sentinel
- Configura tres instancias de Redis: una maestra y dos réplicas.
- Configura un archivo de configuración de Sentinel para monitorear la instancia maestra.
- Inicia Sentinel y verifica que está monitoreando las instancias correctamente.
Solución
- Configura las instancias de Redis como se muestra en la sección de configuración básica.
- Crea el archivo
sentinel.conf
con el contenido proporcionado. - Inicia Sentinel con el comando
redis-sentinel sentinel.conf
.
Ejercicio 2: Simulación de Conmutación por Error
- Detén la instancia maestra de Redis.
- Observa cómo Sentinel maneja la conmutación por error.
- Verifica que una de las réplicas se ha convertido en la nueva maestra.
Solución
- Detén la instancia maestra con el comando
redis-cli -p 6379 shutdown
. - Observa los logs de Sentinel para ver el proceso de conmutación por error.
- Usa
redis-cli -p 6380 info replication
oredis-cli -p 6381 info replication
para verificar que una de las réplicas es ahora la maestra.
Conclusión
Redis Sentinel es una herramienta poderosa para garantizar la alta disponibilidad de tus instancias de Redis. Al configurar Sentinel, puedes asegurarte de que tu sistema Redis sea robusto y capaz de manejar fallos sin interrupciones significativas. En la siguiente sección, exploraremos el modo Cluster de Redis para una escalabilidad aún mayor.
Curso de Redis
Módulo 1: Introducción a Redis
Módulo 2: Estructuras de Datos de Redis
Módulo 3: Comandos y Operaciones de Redis
Módulo 4: Persistencia en Redis
- Instantáneas (RDB)
- Archivos de Solo Adición (AOF)
- Configuración de Persistencia
- Respaldo y Restauración
Módulo 5: Seguridad en Redis
Módulo 6: Optimización del Rendimiento de Redis
Módulo 7: Clustering y Alta Disponibilidad en Redis
Módulo 8: Módulos y Extensiones de Redis
- Introducción a los Módulos de Redis
- Módulos Populares de Redis
- Creando Módulos Personalizados
- Usando Redis con Otras Tecnologías