Redis主从复制详解(图文全面总结)

Redis是大型架构核心,下面我详解Redis主从复制@mikechen

Redis主从复制

Redis 主从复制 ,是 Redis 提供的一种读写分离、和高可用性解决方案。

主节点 (Master): 负责处理所有写操作,并将数据变更同步给从节点。

从节点 (Replica/Slave): 负责接收主节点同步的数据,主要处理读操作。

如下图所示:

Redis主从复制详解(图文全面总结)

 

Redis主从复制原理

Redis主从之间的复制分为两部分:全量复制和增量复制。

1.Redis全量复制过程

触发场景:

从节点第一次连接主节点;

特点: 同步全部数据,耗时长、带宽大,但保证数据完全一致。

Redis主从复制详解(图文全面总结)

流程:

从节点发送 PSYNC ? -1 请求;

主节点执行 BGSAVE 生成 RDB 快照;

主节点将 RDB 文件发送给从节点;

从节点清空旧数据并加载 RDB;

主节点发送缓冲区内的写命令,从节点执行;

全量同步完成,转入增量复制阶段。

 

2.Redis增量复制过程

触发场景:

主从短暂断开后重新连接;

特点: 只同步断线期间的增量命令,速度快、开销小。

Redis主从复制详解(图文全面总结)

流程:

从节点发送 PSYNC <runid> <offset>;

主节点检查 backlog 缓冲区:

有对应偏移量 → 增量复制;

没有 → 回退全量复制;

主节点发送断线期间的命令流,从节点执行追平。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧