Redis Sentinel 哨兵模式

Sentinel 哨兵模式
Redis Sentinel 官网
Redis 的 Sentinel 文档 -- Redis中国用户组(CRUG)
Sentinel Redis 命令参考(红色)

Sentinel 通过监控的方式获取主机的工作状态是否正常,当主机发生故障时, Sentinel 会自动进行 Failover(即故障转移),并将其监控的从机提升主服务器(master),从而保证了系统的高可用性。

哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。

哨兵模式是一种自动选择老大的模式,即在老大宕机之后,哨兵模式会根据哨兵们的内部投票,自动的重新选出一个新的老大。
注意:配置sentinel之前需先建立master-slave replication

哨兵的作用

● 监控

不断的检查master和slave是否正常运行

master存活检测、master与slave运行情况检测

● 通知(提醒)

当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知

● 自动故障转移

断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服务器地址
注意:哨兵也是一台redis服务器,只是不提供数据服务,通常哨兵配置数量为单数

哨兵工作原理【其实就是主从同步】
阶段一:监控阶段 ,用于同步各个节点的状态信息,sentinel会向master、slave以及其他sentinel获取状态,sentinel直接会组件"对应频道",大家一起发布消息、订阅消息,收消息,同步信息等;
阶段二:通知 ,保持联通;
阶段三:故障转移 ,发现问题,竞选负责人,优选新master,新master上任,其他slave切换master,原master座位slave故障回复后连接;

● 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。

● 当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。

● 一般情况下,至少会需要3~5个哨兵对redis 进行监控,我们可以通过修改端口启动多个sentinel 服务。

总结

● 将宕机的master下线 ● 谁来确认master宕机了

● 找一个slave作为master ● 找一个主?怎么找法?

● 通知所有的slave连接新的master ● 修改配置后,原始的主恢复了怎么办?

● 启动新的master与slave

● 全量复制*N+部分复制*N

第一阶段:监控阶段

第二阶段:通知阶段

1、*

*

2*

*

3*

*

4*

*

5*

*

6*

*

第三阶段

1、*

*

2*

*

3*

*

4*

*

5*

*

6*

*

7*

*

8*

*

9*

*

10*

*

*

11、*

*

12*

*

13*

*

14*

*

15*

*

16*

*

17*

18*

*

19*

*

20*

*

21、*

*

22*

*

23*

*

24*

*

25*

*

26*

*

27*

*

28*

*

29*

*

30*

*

31、*

*

32*

*

*

*

相关推荐
hhzz28 分钟前
SQL 窗口函数(Window Function)终极指南
数据库·sql
没有bug.的程序员3 小时前
MyBatis 初识:框架定位与核心原理——SQL 自由掌控的艺术
java·数据库·sql·mybatis
Databend3 小时前
Databend 亮相 DTCC 2025:存算分离架构引领湖仓一体化
数据库
回家路上绕了弯3 小时前
ClickHouse 深度解析:从核心特性到实战应用,解锁 OLAP 领域新势能
数据库·后端
java亮小白19973 小时前
Spring Cloud 快速通关之Sentinel
java·spring cloud·sentinel
张铁铁是个小胖子4 小时前
mysql是怎样运行的(梳理)
数据库·mysql
许泽宇的技术分享5 小时前
当自然语言遇上数据库:Text2Sql.Net的MCP革命如何重新定义开发者与数据的交互方式
数据库·.net·text2sql·mcp
2301_803554525 小时前
redis学习
数据库·redis·学习
TT哇6 小时前
@[TOC](MySQL)MySQL经典练习题(详解)
数据库·mysql
Yichen_liuuil6 小时前
Oracle数据库迁移
数据库·oracle·备份·迁移