Redis est une base de données en mémoire performante et polyvalente, mais pour garantir la haute disponibilité, l'utilisation de Redis Sentinel est recommandée. Ce guide vous explique comment déployer un cluster Redis avec Sentinel via Docker Compose.
Prérequis
- Un serveur Linux avec Docker et Docker Compose installés
- Accès root ou sudo
Structure du cluster
- 1 nœud maître Redis
- 2 nœuds esclaves Redis
- 3 nœuds Sentinel (quorum)
Fichier docker-compose.yml
Créez un fichier docker-compose.yml
:
version: '3'
services:
redis-master:
image: redis:7
container_name: redis-master
command: redis-server --appendonly yes
ports:
- "6379:6379"
volumes:
- redis-master-data:/data
redis-slave-1:
image: redis:7
container_name: redis-slave-1
command: redis-server --appendonly yes --replicaof redis-master 6379
depends_on:
- redis-master
volumes:
- redis-slave1-data:/data
redis-slave-2:
image: redis:7
container_name: redis-slave-2
command: redis-server --appendonly yes --replicaof redis-master 6379
depends_on:
- redis-master
volumes:
- redis-slave2-data:/data
sentinel-1:
image: redis:7
container_name: sentinel-1
command: redis-sentinel /sentinel.conf
volumes:
- ./sentinel.conf:/sentinel.conf
depends_on:
- redis-master
sentinel-2:
image: redis:7
container_name: sentinel-2
command: redis-sentinel /sentinel.conf
volumes:
- ./sentinel.conf:/sentinel.conf
depends_on:
- redis-master
sentinel-3:
image: redis:7
container_name: sentinel-3
command: redis-sentinel /sentinel.conf
volumes:
- ./sentinel.conf:/sentinel.conf
depends_on:
- redis-master
volumes:
redis-master-data:
redis-slave1-data:
redis-slave2-data:
Configuration Sentinel
Créer sentinel.conf
:
port 26379
sentinel monitor mymaster redis-master 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1
Démarrage du cluster
docker-compose up -d
Vérification du fonctionnement
Connectez-vous à Sentinel :
docker exec -it sentinel-1 redis-cli -p 26379 SENTINEL get-master-addr-by-name mymaster
Test de basculement automatique
Arrêtez le master pour tester :
docker stop redis-master
Sentinel élit automatiquement un nouveau master parmi les esclaves.
Sécurisation et bonnes pratiques
- Sécuriser l'accès Redis (authentification, firewall)
- Utiliser un reverse proxy pour exposer Redis de manière sécurisée si nécessaire
- Sauvegardes régulières avec snapshots RDB et/ou AOF
Conclusion
Redis Sentinel vous garantit une haute disponibilité pour vos bases Redis en assurant un failover automatique, idéal pour vos applications critiques en production.