Déployer un cluster Redis HA avec Sentinel et Docker Compose

Publié le 3 juillet 2025

Infrastructure
Base de données
Haute Disponibilité

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.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets.

Contactez-nous

Articles similaires qui pourraient vous intéresser