Docker 搭建Redis Sentinel集群
准备
保留Docker 搭建Redis主从复制创建的容器,一主二从
创建配置文件
创建mysentinel.conf文件,并写入如下内容
port 6379
sentinel monitor mymaster 192.169.0.2 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1
最重要的是
sentinel monitor mymaster 192.169.0.2 6379 2
- mymaster为集群名
- 192.169.0.2为master节点地址
- 2 为最小投票数(设置3 台 Sentinel 可以设置成 2),多少个Sentinel认为master挂了才进行故障转移
创建容器
docker run -itd --name redis-mysentinel -p 6382:6379 -v /home/program/redis/mysentinel.conf:/usr/local/etc/redis/sentinel.conf --net redis-net --ip 192.169.0.5 redis redis-sentinel /usr/local/etc/redis/sentinel.conf
修改端口和容器名再创建两个Sentinel
docker run -itd --name redis-mysentinel2 -p 6383:6379 -v /home/program/redis/mysentinel.conf:/usr/local/etc/redis/sentinel.conf --net redis-net --ip 192.169.0.6 redis redis-sentinel /usr/local/etc/redis/sentinel.conf
docker run -itd --name redis-mysentinel3 -p 6384:6379 -v /home/program/redis/mysentinel.conf:/usr/local/etc/redis/sentinel.conf --net redis-net --ip 192.169.0.7 redis redis-sentinel /usr/local/etc/redis/sentinel.conf
我们就有了三个Sentinel和一主二从六个Redis容器

测试
docker exec -it redis-mysentinel redis-cli进入一个sentinel的redis-cli
输入sentinel master mymaster


模拟故障转移
我们模拟master节点挂掉,停掉容器即可docker stop redis-master

可以看到master节点已经转移到了一个slave节点

浙公网安备 33010602011771号