当前位置: 首页 > news >正文

Docker搭建Redis哨兵集群

                Redis提供了哨兵机制实现主从集群下的故障转移,其中包含了对主从服务的检测、自动故障恢复和通知。

1.环境

centos7、redis6.2.4、MobaXterm

目的:

搭建redis的主从同步+哨兵集群(一主一从三哨兵)

2.步骤

1.主从集群的搭建

主从集群搭建https://blog.csdn.net/m0_74808313/article/details/149283482?spm=1011.2124.3001.6209

2.创建挂载目录和添加配置文件

使用命令创建挂载目录:

mkdir -p redis-demo/sentinel7001/conf

mkdir -p redis-demo/sentinel7001/data

mkdir -p redis-demo/sentinel7002/conf

mkdir -p redis-demo/sentinel7002/data

mkdir -p redis-demo/sentinel7002/conf

mkdir -p redis-demo/sentinel7002/data

添加配置文件sentinel.conf:

vim /home/hl/redis-demo/sentinel7001/conf/sentinel.conf

将以下内容复制到文件中:

port 27001
# 统一虚拟机ip
sentinel announce-ip 192.168.206.180
# 指定主节点以及哨兵的quonum
sentinel monitor mymaster 192.168.206.180 7001 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000

剩余两个哨兵同样的操作,记得改端口号。

3.创建并启动sentinel容器

docker run -d \--name sentinel1 \--net redis-net \-p 27001:27001 \--privileged=true \-v /home/hl/redis-demo/sentinel7001/conf:/etc/redis \-v /home/hl/redis-demo/sentinel7001/data:/data \redis:6.2.4 \redis-sentinel /etc/redis/sentinel.conf
docker run -d \--name sentinel2 \--net redis-net \-p 27002:27002 \--privileged=true \-v /home/hl/redis-demo/sentinel7002/conf:/etc/redis \-v /home/hl/redis-demo/sentinel7002/data:/data \redis:6.2.4 \redis-sentinel /etc/redis/sentinel.conf
docker run -d \--name sentinel3 \--net redis-net \-p 27003:27003 \--privileged=true \-v /home/hl/redis-demo/sentinel7003/conf:/etc/redis \-v /home/hl/redis-demo/sentinel7003/data:/data \redis:6.2.4 \redis-sentinel /etc/redis/sentinel.conf

使用docker ps命令查看是否启动成功:

出现信息则表示启动成功

使用docker exec -it sentinel1 redis-cli -p 27001 sentinel master mymaster命令查看sentinel信息:

出现以上信息则表示连接成功。

执行docker logs sentinel1命令查看打印的日志信息:

我们可以看到哨兵检测的主从集群:

3.自动故障转移测试

我们来模拟哨兵的自动故障转移,关闭master容器来模拟宕机,来查看slave会不会成为新的master,恢复旧的master,来查看是否成为了slave。

docker stop redis-7001

等待几秒后再查看sentinel日志:

我们可以看到有超过quonum的哨兵都认为master主观下线了,master节点由原来的7001转移到了7002,也就是slave节点成为了新的master

重新启动docker容器,可以看到恢复连接后master仍是7002

docker start redis-7001

http://www.dtcms.com/a/278200.html

相关文章:

  • 代码部落 20250713 CSP-S复赛 模拟赛
  • Windows上使用配置Claude Code教程
  • 软件文档体系深度解析:工程视角下的文档架构与治理
  • 知识图谱构建简单分享
  • Task-driven Image Fusion with Learnable Fusion Loss
  • 嵌入式固件 .pkg 打包流程
  • DNS解析过程和nmap端口扫描
  • 大模型之Langchain篇(二)——RAG
  • C语言:流程控制
  • 前四天综合总结
  • 嵌入式 Linux开发环境构建之安装 SSH 软件
  • 【Lmdeploy】大模型本地化部署
  • 技术文章大纲:C++内存泄漏排查大赛
  • Node.js特训专栏-实战进阶:16. RBAC权限模型设计
  • 05.判断日期是工作日还是周末
  • 搭建个人Manus-JManus-00-集合介绍
  • OSPF实验(2)
  • 《夏重庆》——一场暴雨的立体诗篇(DeepSeek赏析)
  • 图形处理算法分类、应用场景及技术解析
  • 3d bounding box投影到2d
  • 12中kali自带的网络工具(开箱即用)
  • 一文打通MySQL任督二脉(事务、索引、锁、SQL优化、分库分表)
  • OSPF与BGP的联动特性实验案例
  • ConcurrentHashMap笔记
  • 从零开始学习深度学习—水果分类之PyQt5App
  • AutoDL挂载阿里云OSS
  • leetGPU解题笔记(1)
  • 【LeetCode Hot100 | 每日刷题】字母异位词分组
  • Can I Trust Your Answer? Visually Grounded Video Question Answering
  • C++高频知识点(十三)