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

相关推荐
007php0073 分钟前
redis缓存功能结合实际项目面试之问题与解析
网络·redis·nginx·缓存·面试·职场和发展·php
noravinsc3 分钟前
yum install -y mysql-community-server报错 GPG Keys are configured as....
数据库·mysql
Han.miracle7 分钟前
数据库圣经--Alter & 视图
数据库·sql·视图
LeeZhao@13 分钟前
【狂飙全模态】狂飙AGI-智能图文理解助手
数据库·人工智能·redis·语言模型·机器人·agi
Charles_go15 分钟前
.net core 微服务0、引言
微服务·架构·.netcore
毕设十刻19 分钟前
基于Vue的旅游网站yzwa8(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
数据库·vue.js·旅游
|晴 天|19 分钟前
微前端架构入门:从概念到落地实践
前端·架构
风123456789~27 分钟前
【Oracle专栏】密码到期但在宽限期->修改密码
数据库·oracle
拾忆,想起30 分钟前
Dubbo本地存根与本地伪装实战指南:提升微服务容错能力的利器
前端·微服务·云原生·架构·dubbo·safari
Pocker_Spades_A34 分钟前
DeepCore:大模型统一网关,Claude 免费体验与跨模型技术洞察
java·服务器·数据库