Redis est une base de données en mémoire ultra-rapide, souvent utilisée comme cache, file d’attente ou session store.
Pour les environnements de production, un cluster Redis permet d’assurer haute disponibilité et scalabilité.
Plan de l’article
- Architecture d’un cluster Redis
- Installation et configuration de Redis
- Mise en place du cluster (sharding)
- Réplication et bascule automatique (Redis Sentinel)
- Bonnes pratiques de production
- Conclusion
Architecture d’un cluster Redis
Un cluster Redis se compose de plusieurs nœuds répartis en maîtres et réplicas, avec partitionnement des données (hash slots).
Les Sentinels surveillent les maîtres et effectuent une élection pour la bascule en cas de panne.
Installation et configuration
Sous Debian/Ubuntu :
sudo apt update
sudo apt install redis-server
Activer le mode cluster dans /etc/redis/redis.conf
:
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
Démarrer le service :
sudo systemctl enable --now redis-server
Création du cluster (exemple 6 nœuds)
Sur 6 instances Redis écoutant 7000..7005
, créer le cluster :
redis-cli --cluster create 10.0.0.11:7000 10.0.0.12:7001 10.0.0.13:7002 10.0.0.14:7003 10.0.0.15:7004 10.0.0.16:7005 --cluster-replicas 1
Vérifier la distribution des hash slots et l’état des nœuds.
Réplication & bascule automatique avec Sentinel
Installer/activer Sentinel (souvent fourni avec Redis) et configurer sentinel.conf
:
port 26379
sentinel monitor mymaster 10.0.0.11 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
Démarrer le service Sentinel sur plusieurs hôtes pour éviter un SPOF.
Bonnes pratiques de production
- Persistance :
appendonly yes
(AOF) + snapshots RDB selon besoins. - Sécurité réseau : restreindre l’accès (pare-feu, VPC, TLS si possible).
- Surveillance : métriques via Prometheus, alertes de latence/mémoire.
- Tuning mémoire :
maxmemory
, politique d’éviction (allkeys-lru
, etc.). - Backups : AOF/RDB hors site et tests de restauration.
Conclusion
Un cluster Redis correctement configuré offre performance, résilience et scalabilité.
Combiné à Sentinel pour la bascule automatique, il constitue une base solide pour les applications critiques.