Docker 搭建Redis集群,一主二从三哨兵,测试模拟master下线,哨兵投票选举。

一,创建主从集群

docker run -d --name redis-master -p 6379:6379 redis --requirepass 123456 --masterauth 123456
docker run -d --name redis-slave1 -p 6380:6379 redis --requirepass 123456 --masterauth 123456
docker run -d --name redis-slave2 -p 6381:6379 redis --requirepass 123456 --masterauth 123456

 -d 以守护进程模式运行

-p 将容器的6379端口映射到宿主机的6379端口

--requirepass 设置redis密码

--masterauth 设置连接主服务的密码,需要和requirepass设置一样

二,查看主从虚拟地址

docker inspect containerid(容器ID)
docker inspect containername (容器名)

 如下图,redis-salve2虚拟ip地址为172.17.0.4

 依次查看后,虚拟ip地址分别为

  1. redis-master : 172.17.0.2
  2. redis-salve1:   172.17.0.3
  3. redis-salve2:   172.17.0.4

三,查看集群状态

docker exec -it redis-master bash

redis-cli

auth password

info replication

发现主从没连接上

#slave1
docker exec -it redis-slave1 bash
redis-cli
auth password
SLAVEOF 172.17.0.2 6379

#slave2
docker exec -it redis-slave2 bash
redis-cli
auth password
SLAVEOF 172.17.0.2 6379

 

之后再次查看集群状态

 

  四,哨兵配置,创建sentinel.conf文件

sentinel monitor mymaster 172.17.0.2 6379 2
daemonize yes
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 10000
logfile "/data/log.txt"

 之后使用cp命令将sentinel1.conf复制成 sentinel2.conf 和 sentinel3.conf

五,启动哨兵容器

docker run -it --name sentinel1 -v /sentinel/sentinel1.conf:/data/sentinel.conf -d redis							
docker run -it --name sentinel2 -v /sentinel/sentinel2.conf:/data/sentinel.conf -d redis							
docker run -it --name sentinel3 -v /sentinel/sentinel3.conf:/data/sentinel.conf -d redis							

 之后分别进入三个哨兵容器中启动sentinel

# sentinel1  sentinel2 sentinel3 都要执行
docker exec -it sentinel1 bash
redis-sentinel sentinel.conf
exit
exit

 

 六,模拟master下线

docker stop redis-master

#重启间隔稍微长一些
docker start redis-master

 查看sentinel1的日志

docker exec -it sentinel1 bash
tail -n 30 log.txt

 最后确认新的master,从原来的已经变为了原来的172.17.0.4就是 redis-slave2,而原来的master再次上线后变成了slave

docker exec -it redis-master bash

redis-cli

auth 123456

info replication

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值