Introduction à Redis Sentinel
Redis Sentinel constitue la solution de haute disponibilité proposée par l'équipe Redis, permettant d'automatiser le basculement de maître en cas de défaillance. Ce guide pratique vous accompagnera dans la mise en place d'une cluster Redis robuste et prêt pour la production.
Concepts fondamentaux de Sentinel
- Surveillance : Surveillance continue de l'état des nœuds maître et esclave
- Notification : Alerte en cas d'anomalie des nœuds vers les administrateurs
- Basculement automatique : Élection automatique d'un nouveau maître lors de l'indisponibilité
- Fournisseur de configuration : Accès via Sentinel à l'adresse du maître actuel pour les clients
Préparation de l'environnement
Configuration requise avec trois serveurs (ou trois ports locaux) :
serveur maître : 192.168.1.100:6379
serveur esclave : 192.168.1.101:6379
serveur esclave : 192.168.1.102:6379
instances Sentinel : une sur chaque serveur
Configuration de la réplication maître-esclave
Paramétrage pour les nœuds esclave (redis.conf) :
replicaof 192.168.1.100 6379
masterauth votre_mot_de_passe
replica-read-only yes
Après démarrage des nœuds, vérification :
redis-cli info replication
# Affiche : role:master / role:slave
Configuration détaillée de Sentinel
Création du fichier sentinel.conf :
port 26379
sentinel monitor cluster_redis 192.168.1.100 6379 2
sentinel auth-pass cluster_redis votre_mot_de_passe
sentinel down-after-milliseconds cluster_redis 30000
sentinel parallel-syncs cluster_redis 1
sentinel failover-timeout cluster_redis 180000
Explication des paramètres :
- monitor : Surveillance du cluster nommé cluster_redis, avec 2 Sentinel requis pour valider l'indisponibilité
- down-after-milliseconds : Déclaration d'indisponibilité après 30 secondes sans réponse
- failover-timeout : Délai maximal pour le basculement
Démarrage de Sentinel :
redis-sentinel /etc/redis/sentinel.conf
Test du basculement de défaillance
Simulation d'une panne du maître :
redis-cli shutdown
Observation des journaux Sentinel :
+sdown master cluster_redis 192.168.1.100 6379
+odown master cluster_redis 192.168.1.100 6379 #quorum 2/2
+switch-master cluster_redis 192.168.1.100 6379 192.168.1.101 6379
Intégration avec Spring Boot
Configuration dans application.yml :
spring:
redis:
sentinel:
master: cluster_redis
nodes:
- 192.168.1.100:26379
- 192.168.1.101:26379
- 192.168.1.102:26379
password: votre_mot_de_passe
Meilleures pratiques en production
- Déployer au moins 3 instances Sentinel (nombre impair)
- Séparer physiquement les instances Sentinel des nœuds Redis
- Activer la persistance AOF : appendonly yes
- Utiliser des mots de passe robustes : requirepass et masterauth
Points clés à retenir
Redis Sentinel offre une solution de haute disponibilité immédiatement utilisable avec les considérations essentielles suivantes :
- Un minimum de 3 instances Sentinel garantit la redondance
- Configuration appropriée des délais down-after et failover-timeout
- Les clients doivent impérativement utiliser Sentinel pour obtenir l'adresse du maître
- En production, activer impérativement la persistance et les alertes de monitoring
La maîtrise de Sentinel assurera la robustesse de votre infrastructure Redis !