面试总结-Redis篇章(十)——Redis哨兵模式、集群脑裂

Redis哨兵模式、集群脑裂

哨兵模式

为了保证Redis的高可用,Redis提供了哨兵模式

哨兵的作用

服务状态监控

Redis集群(哨兵模式)脑裂

假设由于网络原因,主节点master和哨兵都处于不同的分区,哨兵只能检测从节点,就是下面这种情况,哨兵在右侧从节点中选出一个节点作为master。

但是老的mster还存在,还没有挂掉,这时候客户端写入数据依然是给旧的master写数据,这时候就是两个master,就像大脑分裂了一样。新的master是接收不到客户端传入的数据的。这时候如果网络回复了,如下图

这时候,哨兵会将旧的master强制降为slave,这时候slave会从新的master中去同步数据,会把自己的数据给清空,但是在之前的脑裂过程中,客户端写入的数据就丢失了,这就是脑裂问题出现后,导致数据丢失的问题。

解决办法

修改redis中两个配置参数

shell 复制代码
min-replicas-to-write 1  // 表示最少的salve 节点为1个
min-replicas-max-lag 5  // 表示数据复制和同步的延迟不能超过5秒

上述的意思是,master连接的salve最少为一个,而且数据复制和同步的延迟不能超过5秒,如果达不到这个要求,那么就拒绝客户端的请求,这样可以避免数据的丢失


相关推荐
cyforkk1 小时前
12、Java 基础硬核复习:集合框架(数据容器)的核心逻辑与面试考点
java·开发语言·面试
身如柳絮随风扬6 小时前
Java中的CAS机制详解
java·开发语言
风筝在晴天搁浅8 小时前
hot100 78.子集
java·算法
故事和你918 小时前
sdut-Java面向对象-06 继承和多态、抽象类和接口(函数题:10-18题)
java·开发语言·算法·面向对象·基础语法·继承和多态·抽象类和接口
Leon-zy9 小时前
Redis7.4.5 主备冗余+哨兵模式部署
redis·哨兵模式·主备模式
Configure-Handler9 小时前
buildroot System configuration
java·服务器·数据库
测试涛叔9 小时前
金三银四软件测试面试题(800道)
软件测试·面试·职场和发展
:Concerto10 小时前
JavaSE 注解
java·开发语言·sprint
电商API_1800790524710 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
一点程序10 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统