谈一谈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合理配置尽量规避,但无法彻底解决
相关推荐
张先shen4 小时前
Spring Boot集成Redis:从配置到实战的完整指南
spring boot·redis·后端
Aikes9026 小时前
基于redis的分布式session共享管理之销毁事件不生效问题
redis·分布式·缓存
十五年专注C++开发7 小时前
hiredis: 一个轻量级、高性能的 C 语言 Redis 客户端库
开发语言·数据库·c++·redis·缓存
张先shen9 小时前
亿级流量下的缓存架构设计:Redis+Caffeine多级缓存实战
数据库·redis·缓存
sniper_fandc12 小时前
Redis数据类型之list
数据库·redis·list
笑衬人心。14 小时前
Redis 基本操作笔记
数据库·redis·笔记
埃泽漫笔14 小时前
Redis事件机制
redis·event
埃泽漫笔15 小时前
Redis概念和基础
redis
vortex516 小时前
Redis渗透思路总结
数据库·redis·缓存
都叫我大帅哥20 小时前
Redis Set数据类型:从青铜到王者的全方位指南
redis