Redis Replication 深度解析:同步机制 + 命令详解 + 面试真题

举报
柠檬味拥抱 发表于 2025/04/24 09:48:39 2025/04/24
【摘要】 Redis Replication 深度解析:同步机制 + 命令详解 + 面试真题Redis 的主从同步(Replication)是其高可用架构的基石,不论是哨兵模式、集群架构,还是读写分离,主从机制都是绕不开的核心。本篇从原理、流程、命令、问题处理到面试答题技巧,一网打尽! 一、主从同步是干嘛的?在 Redis 中,可以通过配置让一个 Redis 节点(从节点)复制另一个节点(主节点)的...

Redis Replication 深度解析:同步机制 + 命令详解 + 面试真题

Redis 的主从同步(Replication)是其高可用架构的基石,不论是哨兵模式、集群架构,还是读写分离,主从机制都是绕不开的核心。本篇从原理、流程、命令、问题处理到面试答题技巧,一网打尽!


一、主从同步是干嘛的?

在 Redis 中,可以通过配置让一个 Redis 节点(从节点)复制另一个节点(主节点)的数据,从而实现数据冗余、高可用、读写分离


二、主从结构图示意

         Master(可写)
           │
    ┌──────┼──────┐
    ↓      ↓      ↓
 Slave1  Slave2  Slave3(只读)
  • 主节点负责写请求
  • 从节点同步主节点数据,只提供读请求,缓解主节点压力

三、主从同步的分类

同步类型 描述
全量同步 初次同步/数据不一致时
增量同步 使用复制缓冲区,追上中断数据

四、主从同步的核心流程

✅ 第一步:建立连接

从节点发送命令:

SLAVEOF <master-ip> <port>

建立 TCP 连接后,从节点向主节点发送 PSYNC 命令。


✅ 第二步:执行同步(分两种)

1)全量同步(FULL RESYNC)

发生条件:

  • 从节点第一次连接主节点
  • 主节点没有复制积压缓冲区
  • 主节点重启或复制ID变化

主节点执行流程:

1. 主节点执行 BGSAVE 生成 RDB 快照
2. 同时将新写命令写入缓冲区
3. 快照生成完后发给从节点
4. 从节点加载 RDB 文件,再执行缓冲区命令

2)部分同步(PARTIAL RESYNC)

发生条件:

  • 网络闪断后,缓冲区中还有未同步的数据
  • 从节点携带复制偏移量和 runid 请求同步

主节点通过 replication backlog buffer 恢复中断前后丢失的数据。


五、主从同步关键参数

# 开启主从复制(slave端)
slaveof <master-host> <port>

# 设置复制缓冲区大小
repl-backlog-size 1mb

# 复制缓冲区保留时长
repl-backlog-ttl 3600

# 设置主从连接断开多久自动重试
repl-timeout 60

六、主从复制延迟的原因?

  1. 主从之间的网络延迟
  2. 从节点复制缓冲区处理不及时
  3. 从节点执行写操作速度慢(如写 AOF)
  4. 主节点写入量过大

面试技巧:可以提到开启 min-slaves-to-write 参数,保护主节点写入安全性。


七、读写分离实践

  • 主节点负责写入
  • 从节点处理读操作,提高并发

例如 SpringBoot 配置中设置:

spring:
  redis:
    sentinel:
      master: mymaster
      nodes: 127.0.0.1:26379,127.0.0.1:26380
    lettuce:
      read-from: replica_preferred

八、主从切换风险点及面试问答 🔥

❓主从切换时,从节点数据不一致怎么办?

答:可借助哨兵机制或 Redis Cluster 自动完成主从切换,但仍可能因未同步完导致短暂数据不一致。

❓从节点不可用,是否影响主节点?

答:不会影响主节点写入,但读写压力可能增加。

❓主从复制过程中主节点挂掉怎么办?

答:引入 Sentinel 或 Cluster 自动检测,提升可用性。


九、与 Sentinel、Cluster 的关系?

架构 主从角色 作用
Sentinel 管理主从、故障转移 哨兵监控 + 自动主从切换
Cluster 分片 + 多主 多主分片,但每主也可以有从

本质上 Sentinel 和 Cluster 架构,都是基于主从复制做的扩展。


🔟 总结一句话

Redis 主从同步是 Redis 高可用的基石,掌握同步流程、部分/全量机制、复制缓冲、延迟处理,是成为高级工程师的必经之路。

image-20250421140914140

image-20250421140933219**

✅ 总结回顾

通过本篇文章,我们深入了解了 Redis 主从同步的核心机制,从同步类型(全量与部分)、同步流程、关键参数配置,到常见问题与面试技巧进行了全面剖析。主从复制不仅是 Redis 构建高可用架构的基础,也是实现读写分离、数据冗余的关键保障。在实际开发与运维中,理解这些底层原理,能够帮助我们更好地排查问题、优化系统,并在面试中自信应对相关问题。未来,不论是在 Sentinel 的高可用场景,还是在 Redis Cluster 的分布式环境中,主从同步永远是绕不开的底层能力,值得每一位工程师深入掌握!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。