Created
March 18, 2025 00:54
-
-
Save Graeme22/f54800a410757242dbce8e745fca6316 to your computer and use it in GitHub Desktop.
Redis Sentinel example with Docker Compose
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| services: | |
| redis-master: | |
| image: redis:latest | |
| container_name: redis-master | |
| hostname: redis-master | |
| ports: | |
| - "6379:6379" | |
| volumes: | |
| - ./data/master:/data | |
| command: | |
| [ | |
| "redis-server", | |
| "--appendonly", | |
| "yes", | |
| "--repl-diskless-load", | |
| "on-empty-db", | |
| "--protected-mode", | |
| "no" | |
| ] | |
| redis-slave-1: | |
| image: redis:latest | |
| container_name: redis-slave-1 | |
| hostname: redis-slave-1 | |
| depends_on: | |
| - redis-master | |
| ports: | |
| - "6380:6379" | |
| volumes: | |
| - ./data/slave1:/data | |
| command: | |
| [ | |
| "redis-server", | |
| "--appendonly", | |
| "yes", | |
| "--replicaof", | |
| "redis-master", | |
| "6379", | |
| "--repl-diskless-load", | |
| "on-empty-db", | |
| "--protected-mode", | |
| "no" | |
| ] | |
| redis-slave-2: | |
| image: redis:latest | |
| container_name: redis-slave-2 | |
| hostname: redis-slave-2 | |
| depends_on: | |
| - redis-master | |
| ports: | |
| - "6381:6379" | |
| volumes: | |
| - ./data/slave2:/data | |
| command: | |
| [ | |
| "redis-server", | |
| "--appendonly", | |
| "yes", | |
| "--replicaof", | |
| "redis-master", | |
| "6379", | |
| "--repl-diskless-load", | |
| "on-empty-db", | |
| "--protected-mode", | |
| "no" | |
| ] | |
| sentinel-1: | |
| image: redis:latest | |
| container_name: sentinel-1 | |
| hostname: sentinel-1 | |
| depends_on: | |
| - redis-master | |
| ports: | |
| - "26379:26379" | |
| command: > | |
| sh -c 'echo "bind 0.0.0.0" > /etc/sentinel.conf && | |
| echo "sentinel monitor mymaster redis-master 6379 2" >> /etc/sentinel.conf && | |
| echo "sentinel resolve-hostnames yes" >> /etc/sentinel.conf && | |
| echo "sentinel down-after-milliseconds mymaster 10000" >> /etc/sentinel.conf && | |
| echo "sentinel failover-timeout mymaster 10000" >> /etc/sentinel.conf && | |
| echo "sentinel parallel-syncs mymaster 1" >> /etc/sentinel.conf && | |
| redis-sentinel /etc/sentinel.conf' | |
| sentinel-2: | |
| image: redis:latest | |
| container_name: sentinel-2 | |
| hostname: sentinel-2 | |
| depends_on: | |
| - redis-master | |
| ports: | |
| - "26380:26379" | |
| command: > | |
| sh -c 'echo "bind 0.0.0.0" > /etc/sentinel.conf && | |
| echo "sentinel monitor mymaster redis-master 6379 2" >> /etc/sentinel.conf && | |
| echo "sentinel resolve-hostnames yes" >> /etc/sentinel.conf && | |
| echo "sentinel down-after-milliseconds mymaster 10000" >> /etc/sentinel.conf && | |
| echo "sentinel failover-timeout mymaster 10000" >> /etc/sentinel.conf && | |
| echo "sentinel parallel-syncs mymaster 1" >> /etc/sentinel.conf && | |
| redis-sentinel /etc/sentinel.conf' | |
| sentinel-3: | |
| image: redis:latest | |
| container_name: sentinel-3 | |
| hostname: sentinel-3 | |
| depends_on: | |
| - redis-master | |
| ports: | |
| - "26381:26379" | |
| command: > | |
| sh -c 'echo "bind 0.0.0.0" > /etc/sentinel.conf && | |
| echo "sentinel monitor mymaster redis-master 6379 2" >> /etc/sentinel.conf && | |
| echo "sentinel resolve-hostnames yes" >> /etc/sentinel.conf && | |
| echo "sentinel down-after-milliseconds mymaster 10000" >> /etc/sentinel.conf && | |
| echo "sentinel failover-timeout mymaster 10000" >> /etc/sentinel.conf && | |
| echo "sentinel parallel-syncs mymaster 1" >> /etc/sentinel.conf && | |
| redis-sentinel /etc/sentinel.conf' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment