Redis哨兵模式,一主二仆反客为主,论故障转移和恢复能力还得是它呀
创始人
2025-07-07 21:40:45
0

实际场景分析:为了解决主从模式的无法自动容错及恢复的问题,Redis引入了一种哨兵模式的集群架构。哨兵模式是在主从复制的基础上加入了哨兵节点。哨兵节点是一种特殊的Redis节点,用于监控主节点和从节点的状态。当主节点发生故障时,哨兵节点可以自动进行故障转移,选择一个合适的从节点升级为主节点,并通知其他从节点和应用程序进行更新。

图片图片

 

在原来的主从架构中,引入哨兵节点,其作用是监控Redis主节点和从节点的状态。每个Redis实例都可以作为哨兵节点,通常需要部署多个哨兵节点,以确保故障转移的可靠性。

好啦,话不多说,接下来就让我们一起实操吧!

看重点

看到最后:免费领取详细的Word文档?

图片图片

01哨兵模式原理

哨兵节点定期向所有主节点和从节点发送PING命令,如果在指定的时间内未收到PONG响应,哨兵节点会将该节点标记为主观下线。如果一个主节点被多数哨兵节点标记为主观下线,那么它将被标记为客观下线。

当主节点被标记为客观下线时,哨兵节点会触发故障转移过程。”它会从所有健康的从节点中选举一个新的主节点,并将所有从节点切换到新的主节点,实现自动故障转移。同时,哨兵节点会更新所有客户端的配置,指向新的主节点。

哨兵节点通过发布订阅功能来通知客户端有关主节点状态变化的消息。客户端收到消息后,会更新配置,将新的主节点信息应用于连接池,从而使客户端可以继续与新的主节点进行交互。

这个集群模式的优点就是为整个集群系统了一种故障转移和恢复的能力。

02搭建Redis哨兵模式步骤

2.1 安装Redis主从模式(一主二仆)

Redis主从模式具体步骤请参考详文《不要只会玩儿Redis单机版,如果是读多写少的情况,请选择Redis主从模式吧》

PS:如果都是一台服务器测试哨兵模式,请将slave-6380.conf和slave-6381.conf中slaveof 127.0.01 6379

2.2 配置Redis哨兵模式(sentinel)具体步骤如下

2.2.1 启动好一主二仆模式,6379带着6380、6381

查看详细信息:info replication

图片图片

图片图片

图片图片

2.2.2 自定义的config目录下新建sentinel.conf文件

新建sentinel文件命令:touch sentinel.conf

配置哨兵,填写内容:vi sentinel.conf

sentinel monitor mymaster 127.0.0.1 6379 1

#其中mymaster为监控对象起的服务器名称,1为至少有多少个哨兵同意迁移的数量

sentinel down-after-milliseconds mymaster 30000 

#判定服务器down掉的时间周期,默认30000毫秒(30秒)

2.2.3 启动哨兵

退回上级目录:cd ../

执行命令:./redis-sentinel config/sentinel.conf

图片图片

2.2.4 当主机挂掉,从机选举中产生新的主机

(大概10秒左右可以看到哨兵窗口日志,切换了新的主机)

哪个从机会被选举为主机呢?根据优先级别:slave-priority 

原主机重启后会变为从机。

图片图片

图片图片

PS:如果都是一台服务器测试哨兵模式,发现6379宕机后并没有实现选举从机过程,请务必将6380和6381的slaveof后的IP地址修改为127.0.0.1,将sentinel.conf中sentinel monitor mymaster 127.0.0.1 6379 1的IP地址也统一设置为127.0.0.1

03哨兵模式应用总结

哨兵模式的优势主要在于当主节点发生故障时,哨兵节点可以自动进行故障转移与自动恢复,选择一个合适的从节点升级为主节点,并通知其他从节点和应用程序进行更新。

但是哨兵模式最大的缺点,就是不适用于大规模应用的解决方案,它无法提供了更好的横向扩展和容错能力。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
P2P的自白|我不生产内容,我... 现在一提起P2P,人们就会联想到正在被有关部门“围剿”的互联网理财服务。×租宝事件使得劳...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...