目录结构
.├── redis-stack.yml├── sentinel│ ├── redis-sentinel.yml│ ├── sentinel1.conf│ ├── sentinel2.conf│ └── sentinel3.conf└── start.sh
redis一主二从部署
redis-stack.yml
version: '3.1'
services:
master:
image: redis:4.0
container_name: redis-master
command: redis-server --requirepass 123456
ports:
- "56379:6379"
slave1:
image: redis:4.0
container_name: redis-slave-1
ports:
- "56380:6379"
command: redis-server --slaveof master 6379 --requirepass 123456 --masterauth 123456
slave2:
image: redis:4.0
container_name: redis-slave-2
ports:
- "56381:6379"
command: redis-server --slaveof master 6379 --requirepass 123456 --masterauth 123456
redis-sentinel部署
sentinel配置文件sentinel1/2/3.conf
port 26379
dir /tmp
sentinel monitor mymaster master 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
sentinel deny-scripts-reconfig yes
sentinel/redis-sentinel.yml:
version: '3.1'
services:
sentinel1:
image: redis:4.0
container_name: redis-sentinel-1
ports:
- "26379:26379"
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel/sentinel1.conf:/usr/local/etc/redis/sentinel.conf
- /etc/localtime:/etc/localtime:ro
sentinel2:
image: redis:4.0
container_name: redis-sentinel-2
ports:
- "26380:26379"
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel/sentinel2.conf:/usr/local/etc/redis/sentinel.conf
- /etc/localtime:/etc/localtime:ro
sentinel3:
image: redis:4.0
container_name: redis-sentinel-3
ports:
- "26381:26379"
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel/sentinel3.conf:/usr/local/etc/redis/sentinel.conf
- /etc/localtime:/etc/localtime:ro
启动服务
docker stack deploy -c redis-stack.yml -c sentinel/redis-sentinel.yml redis-cluster
