docker 搭建 redis 集群(哨兵模式)
文件结构
1. redis-sentinel
1-1. docker-compose.yml
1-2. sentinel
1-2-1 docker-compose.yml
1-2-2 sentinel.conf
1-2-3 sentinel1.conf
1-2-4 sentinel2.conf
1-2-5 sentinel3.conf
1、docker-compose 文件实现一主两从
编写docker-compose.yml文件,内容如下:
version: '3.7'
services:
master:
image: redis
container_name: redis-master
restart: always
command: redis-server --requirepass GaosiDev --masterauth GaosiDev
ports:
- 6380:6379
slave1:
image: redis
container_name: redis-slave-1
restart: always
command: redis-server --slaveof redis-master 6379 --requirepass GaosiDev --masterauth GaosiDev
ports:
- 6381:6379
slave2:
image: redis
container_name: redis-slave-2
restart: always
command: redis-server --slaveof redis-master 6379 --requirepass GaosiDev --masterauth GaosiDev
ports:
- 6382:6379
docker-compose 文件实现 sentinel
version: '2'
services:
sentinel1:
image: redis ## 镜像
container_name: redis-sentinel-1
ports:
- "26379:26379"
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- "./sentinel1.conf:/usr/local/etc/redis/sentinel.conf"
sentinel2:
image: redis ## 镜像
container_name: redis-sentinel-2
ports:
- "26380:26379"
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- "./sentinel2.conf:/usr/local/etc/redis/sentinel.conf"
sentinel3:
image: redis ## 镜像
container_name: redis-sentinel-3
ports:
- "26381:26379"
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf
networks:
default:
external:
name: redis-sentinel_default ##通过(docker inspect 主节点容器id)来查看,对应 NetworkMode
编辑 sentinel.conf 文件
port 26379
dir /tmp
#172.18.0.3填写自己的主节点ip,通过(docker inspect 主节点容器id)来查看,对应 IPAddress
sentinel monitor mymaster 172.17.0.4 6379 2
sentinel auth-pass mymaster GaosiDev
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
sentinel deny-scripts-reconfig yes