创建网络
docker network create --subnet=172.10.0.0/16 redis
创建文件目录
[root@master app]# mkdir -p /app/redis/server/config [root@master app]# mkdir -p /app/redis/server/data [root@master app]# mkdir -p /app/redis/sentinel/config [root@master app]# mkdir -p /app/redis/sentinel/data [root@master app]# mkdir -p /app/redis2/server/config [root@master app]# mkdir -p /app/redis2/server/data [root@master app]# mkdir -p /app/redis2/sentinel/config [root@master app]# mkdir -p /app/redis2/sentinel/data [root@master app]# mkdir -p /app/redis3/server/config [root@master app]# mkdir -p /app/redis3/server/data [root@master app]# mkdir -p /app/redis3/sentinel/config [root@master app]# mkdir -p /app/redis3/sentinel/data
创建配置文件
redis 主配置文件
bind 0.0.0.0
# 配置master密码
requirepass 123456
# 宕机后成为从要连接master的密码
masterauth 123456
# 开启持久化
appendonly yes
redis 备配置文件
replicaof 172.10.0.11 6379
bind 0.0.0.0
# 配置master密码
requirepass 123456
# 宕机后成为从要连接master的密码
masterauth 123456
# 开启持久化
appendonly yes
启动主从节点 INFO replicationv 查看主从信息
docker run -d --name redis-master --network redis --ip 172.10.0.11 -u root -p 6380:6379 -v /app/redis/server/config:/etc/redis/config -v /app/redis/server/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-server /etc/redis/config/redis.conf
docker run -d --name redis-node --network redis --ip 172.10.0.12 -u root -p 6381:6379 -v /app/redis2/server/config:/etc/redis/config -v /app/redis2/server/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-server /etc/redis/config/redis.conf
docker run -d --name redis-node2 --network redis --ip 172.10.0.13 -u root -p 6382:6379 -v /app/redis3/server/config:/etc/redis/config -v /app/redis3/server/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-server /etc/redis/config/redis.conf
搭建3个哨兵
哨兵配置文件 ../sentinel/config/sentinel.conf
port 26379 sentinel monitor redis-master 172.10.0.11 6379 2 sentinel auth-pass redis-master 123456 sentinel down-after-milliseconds redis-master 6000 sentinel failover-timeout redis-master 6000
docker run -d --name redis-sentinel-1 --network redis --ip 172.10.0.20 -u root -p 26379:26379 -v /app/redis/sentinel/config:/etc/redis/config -v /app/redis/sentinel/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-sentinel /etc/redis/config/sentinel.conf
docker run -d --name redis-sentinel-2 --network redis --ip 172.10.0.21 -u root -p 26380:26379 -v /app/redis2/sentinel/config:/etc/redis/config -v /app/redis2/sentinel/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-sentinel /etc/redis/config/sentinel.conf
docker run -d --name redis-sentinel-3 --network redis --ip 172.10.0.22 -u root -p 26381:26379 -v /app/redis3/sentinel/config:/etc/redis/config -v /app/redis3/sentinel/data:/data -e TZ=Asia/Shanghai redis:6.2 redis-sentinel /etc/redis/config/sentinel.conf
验证:
[root@master app]# docker exec -it redis-sentinel-1 /bin/bash root@e4ee853ee9e7:/data# redis-cli -h 172.10.0.20 -p 26379 172.10.0.20:26379> ping PONG 172.10.0.20:26379> info sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=redis-master,status=ok,address=172.10.0.11:6379,slaves=2,sentinels=3 172.10.0.20:26379> exit

浙公网安备 33010602011771号