当前位置: 首页 > news >正文

Redis的主从架构

主从模式

全量同步

  1. 首先主从同步过程第一步 会先比较replication id 判断是否是第一次同步
  2. 假设为第一次同步 那么就会 启动bgsave异步生成RDB 同时fork子进程记录生成期间的新数据
  3. 发送RDB给从节点 清空本地数据写入RDB

增量同步

  1. 对比ReplicationID不同因此选择增量同步
  2. 在Reply_Buffer中有一个环形缓冲区 以及Offset偏移量
  3. 对比完主从直接的偏移量差距后就可以选择性的获取需要增量同步的新数据
  4. 同时有一个问题 :如果超出了环形缓冲区 那么就需要进行一次全量同步在进行增量同步

哨兵模式

哨兵的主要作用:

监控、选主、通知

哨兵选选举过程:

  1. 首先通过心跳机制发Ping 如果没响应就会主观认为主节点下线
  2. 向其他Sentinel请求 进行半数选举 如果超过半数Sentinel认为节点下线就为客观下线
  3. 优先选举数据最全最合适的节点为主节点

集群模式

Cluster分片集群

分片集群将所有节点的存储分为16384个槽位

所有要存储的数据根据Key值进行Hash映射后分到具体的槽位

具体的映射算法:

Redis Cluster 是 Redis 实现“分布式+高可用”的集群方式,而 Sentinel 是在“单主结构”下提供“高可用”的方案。Cluster 更强,但也更复杂;Sentinel 更简单,但扩展性有限。

如果cluster出现故障 会自动选举主节点 故障转移 并且重新分配Hash槽位

相关文章:

  • Node.js 实战六:日志系统设计 —— 不只是 console.log,而是可追溯的行为记录链
  • 单目测距和双目测距 bev 3D车道线
  • 常见面试题:Webpack的构建流程简单说一下。
  • iOS 内存分区
  • 报错System.BadImageFormatException:“试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)”
  • 滑动窗口算法详解与C++实现
  • 蓝桥杯1140 最小质因子之和(Hard Version)
  • 深入理解位图(Bit - set):概念、实现与应用
  • 蓝桥杯19681 01背包
  • Web开发-JavaEE应用SpringBoot栈SnakeYaml反序列化链JARWAR构建打包
  • linux本地部署ollama+deepseek过程
  • 职场方法论总结(4)-如何正确地汇报
  • 使用Python制作Lorenz吸引子的轨道生成视频
  • 《云端共生体:Flutter与AR Cloud如何改写社交交互规则》
  • 数字电子技术基础(六十)——使用Digital软件绘制脉冲触发的触发器
  • C++:static成员
  • 你引入的lodash充分利用了吗?
  • 封装、继承、多态的理解
  • 基于区块链技术的供应链溯源系统:重塑信任与透明度
  • 改进模糊C均值时序聚类+编码器状态识别!IPOA-FCM-Transformer组合模型
  • 习近平:坚持科学决策民主决策依法决策,高质量完成“十五五”规划编制工作
  • 1块钱解锁2万部微短剧还能日更,侵权盗版难题怎么破?
  • 上海这场有温度的“人才集市”,为更多人才搭建“暖心桥”
  • 新疆多地市民拍到不明飞行物:几秒内加速消失,气象部门回应
  • 美国考虑让移民上真人秀竞逐公民权,制片人称非现实版《饥饿游戏》
  • 摄影师|伊莎贝尔·穆尼奥斯:沿着身体进行文化溯源