跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

Redis 主从复制架构详解

Redis 主从复制通过一个 Master 和多个 Slave 节点实现数据冗余与读写分离。主要解决单点故障问题,Master 负责写,Slave 负责读。支持全量同步(RDB)和增量同步。架构包括中心化(一主多从)、去中心化(链式)及独立模式。缺点在于无法自动故障转移且受单机存储限制,通常需配合哨兵模式使用。

云朵棉花糖发布于 2026/3/26更新于 2026/10/1692 浏览
Redis 主从复制架构详解

什么是主从复制

主从复制是 Redis 最简单的集群模式,主要是为了解决单点故障问题,将数据复制多个副本到从节点中。即使有一台服务器宕机,其他服务仍可提供服务。主从模式包含一个主节点(Master)和多个从节点(Slave),一般主节点负责读写操作,从节点负责读操作。当主节点发生故障,可将一个从节点升级为主节点,实现故障转移(需人工手动操作)。

[图:主从复制架构图]

**优点:**简单易用,适用于读多写少的场景。

缺点:

  1. 不具备故障自动转移的能力,无法做容错和恢复。
  2. 只有主节点进行写操作,无法负载均衡。
  3. 存储能力受到单机限制。

数据同步过程

  1. 全量复制:当主从服务器刚建立连接时,进行全量数据同步。
    • 从服务器连接到主服务器,发送 PSYNC 命令(Redis 2.8 之前是 SYNC 命令)。
    • 主服务器收到命令后,执行 BGSAVE 生成 RDB 快照文件发送给从服务器。
    • 从服务器接收快照后,清空内存旧数据,将接收到的数据写入磁盘。
  2. 增量复制:全量复制结束后进行。
    • 主服务器每执行一个写命令,向从服务器发送相同的写命令。
    • 从服务器接收并执行收到的写命令。

优点:

  • 数据热备份:主从复制实现了数据的热备份,是持久化之外的数据冗余方式。
  • 故障恢复:如果 Master 宕掉,可手动提升新 Master。
  • 负载均衡:实现读写分离,一个 Master 写,多个 Slave 分摊读压力。

缺点:

  • 网络延迟:写操作先在 Master 上操作,然后同步到 Slave。
  • 无法自动切换:普通主从模式无法自动切换 Master,需使用哨兵模式。

常见架构模式

主数据库 Master 以写为主,从数据库 Slave 以读为主,整体负责读写分离、容灾恢复。

一主二仆(中心化架构)

[图:中心化架构图]

常见问题:

  1. slave1、slave2 是从头开始复制还是从切入点开始复制?
    • 答:从头开始复制;历史数据也可复制。
  2. 从机是否可以写?set 可否?
    • 答:从机不可写,不可 set,主机可写。
  3. 主机 shutdown 后情况如何?从机是上位还是原地待命?
    • 答:从机原地待命。
  4. 主机又回来了后,主机新增记录,从机还能否顺利复制?
    • 答:能。
  5. 其中一台从机 down 后情况如何?
    • 答:不能跟上,每次与 Master 断开之后都需要重新连接,除非配置进 redis.conf 文件(REPLICATION 部分)。

薪火相传(去中心化架构)

上一个 Slave 可以是下一个 Slave 的 Master,Slave 同样可以接收其他 Slaves 的连接和同步请求。该 Slave 作为链条中下一个的 Master,可有效减轻 Master 的写压力。中途变更转向会清除之前的数据,重新建立拷贝最新数据。

命令:slaveof 新主库 IP 新主库端口

反客为主(独立模式)

使当前数据库停止与其他数据库的同步,转成主数据库,形成一个中心点。

命令:SLAVEOF no one

目录

  1. 什么是主从复制
  2. 数据同步过程
  3. 常见架构模式
  4. 一主二仆(中心化架构)
  5. 薪火相传(去中心化架构)
  6. 反客为主(独立模式)

更多推荐文章

查看全部
  • OpenAI 服务调整背景下国产大模型落地路径分析
  • Whisper-large-v3 多任务并行服务实战:转录、翻译与摘要一体化
  • 程序员进入大厂的关键步骤与面试准备指南
  • LLaMA Factory 与 Megatron-LM 分布式训练集成方案
  • 在线 OJ 系统竞赛管理模块开发实战 (Java-Spring)
  • 基于 Rokid AR 眼镜的健康饮水提醒应用开发
  • Python 构建 MCP 应用实战指南
  • NWPU VHR-10 遥感目标检测数据集介绍及 YOLO 训练指南
  • HarmonyOS RcList 组件事件处理机制与应用示例
  • Linux 环境变量详解:概念、操作与代码获取
  • 大语言模型(LLM)入门指南与学习路线
  • WebUploader 文件上传组件核心功能与配置指南
  • OpenClaw 大龙虾机器人本地部署与配置实战
  • ComfyUI 插件安装失败排查:Git 配置与网络代理详解
  • 基于 Rokid AR 眼镜的健康管理应用开发实践
  • 前端金额计算:解决 JS 浮点数精度丢失与分摊问题
  • 树的基本概念与堆的功能实现
  • CSS 基础:语法规范、选择器与常用样式
  • 开源机器人选型全指南
  • 《Agent Runtime 工程化》第十二章 二开毕业项目:12.1 方向 A:Eval Harness

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online