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

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槽位

http://www.lryc.cn/news/2380034.html

相关文章:

  • 博客系统功能测试
  • 【深度学习新浪潮】什么是多模态大模型?
  • 机器学习前言2
  • 【成品设计】基于Arduino的自动化农业灌溉系统
  • 前端页面 JavaScript数据交互
  • esp32课设记录(三)mqtt通信记录 附mqtt介绍
  • string类(详解)
  • MATLAB | R2025a 更新了哪些有趣的东西?
  • 前缀和——和为K的子数组
  • React 第四十二节 Router 中useLoaderData的用途详解
  • 千问大模型部署
  • 深入理解 ZAB:ZooKeeper 原子广播协议的工作原理
  • GO语言语法---if语句
  • Unix Bourne Shell
  • GraphPad Prism项目的管理
  • 驱动-Linux定时-timer_list
  • STM32F103_LL库+寄存器学习笔记22 - 基础定时器TIM实现1ms周期回调
  • 5个yyds的.Net商城开源项目
  • C++:与7无关的数
  • [项目深挖]仿muduo库的并发服务器的解析与优化方案
  • c语言与python的异同之处
  • 国标GB28181视频平台EasyGBS校园监控方案:多场景应用筑牢安全防线,提升管理效能
  • 【视频】解决FFmpeg将RTSP转RTMP流时,出现的卡死、出错等问题
  • SHIMADZU岛津 R300RC300 Operation Manual
  • 使用 Docker 部署 React + Nginx 应用教程
  • 我创建了MariaDb数据库,但其他电脑访问不到?
  • API Gateway REST API 集成 S3 服务自定义 404 页面
  • 关于systemverilog中在task中使用force语句的注意事项
  • Python Day26 学习
  • 解决:npm install报错,reason: certificate has expired