谈一谈redis脑裂

什么是redis脑裂

(1)一主多从架构中,主节点与客户端通信正常,主节点与哨兵、从节点连接异常,客户端仍正常写入数据

(2)哨兵判定主节点下线,重新选主

(3)原主节点与哨兵和其他节点通信恢复,成为新主节点的从节点,drop本身所有的数据,从新主节点全量copy数据

(4)原主节点通信异常至新主节点出现期间客户端写入的数据丢失

这就是脑裂

如何应对脑裂现象

在原主节点通信异常至新主节点选举出现期间,拒绝客户端的数据写入

redis提供了两个配置项

  • min-slaves-to-write:与主节点通信的从节点数量必须大于等于该值主节点,否则主节点拒绝写入
  • min-slaves-max-lag:主节点与从节点通信的ACK消息延迟必须小于该值,否则主节点拒绝写入。
    Redis脑裂可以采用min-slaves-to-write和min-slaves-max-lag合理配置尽量规避,但无法彻底解决
相关推荐
wljt2 小时前
Redis
数据库·redis·缓存
wljt2 小时前
Redis常用命令
数据库·redis·oracle
w***95493 小时前
【Redis】centos7 systemctl 启动 Redis 失败
数据库·redis·缓存
g***72703 小时前
Spring Boot 整合 Redis 步骤详解
spring boot·redis·bootstrap
Elias不吃糖4 小时前
NebulaChat:C++ 高并发聊天室服务端
开发语言·c++·redis·sql·项目文档
c***72745 小时前
【Redis系列】RedisTemplate的使用与注意事项
数据库·redis·缓存
青春:一叶知秋6 小时前
【Redis存储】渐进式遍历和数据库管理
数据库·redis·缓存
理人综艺好会10 小时前
redis学习之基础数据结构
数据结构·redis·学习
苦学编程的谢11 小时前
Redis_16_哨兵
数据库·redis·缓存
青春:一叶知秋17 小时前
【Redis存储】List列表
数据库·redis·缓存