Docker 搭建Redis集群,一主二从三哨兵,测试模拟master下线,哨兵投票选举。
2021/7/14 19:35:02
本文主要是介绍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地址分别为
- redis-master : 172.17.0.2
- redis-salve1: 172.17.0.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
这篇关于Docker 搭建Redis集群,一主二从三哨兵,测试模拟master下线,哨兵投票选举。的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-21redisinsight-v2
- 2024-02-26Typed property App\Api\Mapper\GamePropsConfigMapper::$apiRedis must not be accessed before initia-icode9专业技术文章分享
- 2024-02-21redisson getlock
- 2024-02-20redis config
- 2024-02-20redis leaderboard
- 2024-01-23缓存选型:Redis or MemCache
- 2024-01-22面试官:Redis持久化能关吗?怎么关?
- 2024-01-21Redis压测工具redis-benchmark-icode9专业技术文章分享
- 2024-01-19这才是你应该了解的Redis数据结构!
- 2024-01-18Redis系列:使用 Redis Module 扩展功能