什么是redis的集群脑裂?

redis的集群脑裂是指因为网络问题,导致redis master节点跟redis slave节点和sentinel集群处于不同的网络分区,此时因为sentinel集群无法感知到master的存在,所以将slave节点提升为master节点。 (推荐学习:Redis视频教程)

此时存在两个不同的master节点,就像一个大脑分裂成了两个。

集群脑裂问题中,如果客户端还在基于原来的master节点继续写入数据,那么新的master节点将无法同步这些数据,当网络问题解决之后,sentinel集群将原先的master节点降为slave节点,此时再从新的master中同步数据,将会造成大量的数据丢失。

解决方案

redis的配置文件中,存在两个参数min-slaves-to-write 3

min-slaves-max-lag 10

第一个参数表示连接到master的最少slave数量

第二个参数表示slave连接到master的最大延迟时间

如果连接到master的slave数量小于第一个参数,且ping的延迟时间小于等于第二个参数,那么master就会拒绝写请求,配置了这两个参数之后,如果发生集群脑裂,原先的master节点接收到客户端的写入请求会拒绝,就可以减少数据同步之后的数据丢失。

注意:较新版本的redis.conf文件中的参数变成了min-replicas-to-write 3

min-replicas-max-lag 10

redis中的异步复制情况下的数据丢失问题也能使用这两个参数

oracle怎样避免脑裂的,redis集群怎么防止脑裂相关推荐

  1. Redis集群选举原理与脑裂问题

    系列文章目录 第一节 Redis的安装 第二节 Redis的五种数据结构(String.Hash.List.Set.ZSet) 第三节 Redis的持久化方式 第四节 Redis主从架构 第五节 Re ...

  2. 支撑腾讯直播百亿请求的 Redis 集群是如何工作的

    摘要:作为noSql中的kv数据库的王者,redis以其高性能,低时延,丰富的数据结构备受开发者青睐,但是由于redis在水平伸缩性上受限,如何做到能够水平扩容,同时对业务无侵入性是很多使用redis ...

  3. 关于redis集群脑裂及其解决方案

    本文来说下redis集群脑裂及其解决方案 文章目录 概述 概述

  4. Redis进阶 - 如何避免Redis集群脑裂?

    文章目录 CAP Redis防止脑裂参数 min-slaves-to-write 验证 注意事项 CAP CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem) ...

  5. Redis集群脑裂、Redis主从同步的异步丢数据问题

    什么是Redis的集群脑裂? Redis的集群脑裂指在主从集群中,同时有两个master主节点,它们都能接收写请求.而脑裂最直接的影响,就是客户端不知道应该往哪个master主节点写入数据,结果就是不 ...

  6. Redis集群脑裂导致数据丢失问题处理

    什么是Redis的集群脑裂: Redis的集群脑裂指在主从集群中,同时有两个master主节点,它们都能接收写请求.而脑裂最直接的影响,就是客户端不知道应该往哪个master主节点写入数据,结果就是不 ...

  7. mysql galera 脑裂_galera cluster集群的分裂与仲裁机制

    集群的分裂 当集群由于网络原因分裂为几个单独的组时(一组可能是单节点,也可能是几个互联的节点),数据出现不一致,此时可能产生脑裂及数据不一致.这种情况下,只有一组节点能够继续提供服务,这组节点的状态是 ...

  8. mysql galera 脑裂_MySQL Galera集群的心跳间隔调整

    MySQL Galera集群的心跳间隔调整 当在两个数据中心之间部署galera的集群时,由于经常WAN的不稳定而导致galera产生脑裂而引发 集群重新选举,所在在网络不稳定的情况下,我们可以适当调 ...

  9. 读写分离oracle redis,redis集群主从之读写分离

    redis集群主从之读写分离 1.集群部署 这里就不详细赘述如何部署主从集群了,一般都是使用slaveOf配置来进行初始化配置. 2.与springboot集成实现读写分离 通过注解实现调用层读写分离 ...

最新文章

  1. ajax post请求,后台servlet来接收
  2. 在Android中取得当前进程名
  3. 影响软件测试未来的5件事 (译)
  4. linux入门之实用指令(三)
  5. 在alv list小计之后输出分割线
  6. es6学习笔记(一)
  7. .netcore 堆栈调用方法小记
  8. python爬虫网页pdf_爬虫实战【3】Python-如何将html转化为pdf(PdfKit)
  9. 关于Etcd的几个问题
  10. Espresso unit test的输入法问题
  11. 终于有机会获得百度SEO的邀请码了
  12. configure: error: gperf is needed
  13. vofuria的开发(5)替换原vuforia的茶壶模型、改为自己想要的模型AR model
  14. 海南移动IPTV——使用的小Tips
  15. 图片PDF转word
  16. 2.ActiveMQ下载和安装(Linux版)
  17. php 调用拼多多接口方法 生成 sign方法
  18. 从零开始设计一个共识算法——一场没有硝烟的战争
  19. 暑假训练 The Triangle Game (OpenJ_Bailian - 1574)
  20. 使用路由器实现(非常)基本的家庭网络家庭安全

热门文章

  1. opengles 2.0 点精灵 多边形偏移等备忘
  2. HDU-2332 机器人的舞蹈 递推
  3. ZZULIOJ 1074:百钱买百鸡
  4. 理论基础 —— 线性表 —— 顺序表
  5. 动态规划 —— 背包问题 P06 —— 分组背包
  6. 与圆相关的计算(信息学奥赛一本通-T1014)
  7. 信息学奥赛一本通C++语言——1127:图像旋转
  8. 13 MM配置-主数据-定义物料状态
  9. 7 记账期 012 2021 没有打开
  10. 计算机完成逻辑运算的原理,计算机组成原理2.5.1逻辑运算.ppt