【Redis】主从复制原理与配置——主从同步机制、读写分离、搭建主从架构

📅 发布时间:2026/7/3 21:18:47 👁️ 浏览次数:
【Redis】主从复制原理与配置——主从同步机制、读写分离、搭建主从架构
Redis 主从复制原理与配置引言 大家好我是老曹今天我们来聊聊 Redis 的主从复制机制。如果你觉得 Redis 单机玩腻了想体验一下“一主多从”的分布式快感那这节课就是为你准备的主从复制不仅能让你的数据更安全还能实现读写分离提升系统性能。废话不多说咱们直接开干学习目标 学完这节课你将掌握以下技能理解 Redis 主从复制的核心原理掌握主从架构的搭建步骤实现读写分离的实际应用解决主从同步中的常见问题应对面试官的灵魂拷问一、主从复制是什么1.1 基本概念 主从复制Replication是指将一台 Redis 服务器的数据同步到其他 Redis 服务器的过程。其中主节点Master负责写操作并将数据变更同步给从节点。从节点Slave负责读操作接收主节点的数据更新。简单来说就是“老大干活小弟跟着学”。1.2 应用场景 场景描述数据冗余多个副本保障数据安全读写分离主写从读减轻主节点压力故障恢复从节点可快速切换为主节点扩展性支持横向扩展读能力二、主从复制原理详解 2.1 同步机制流程图 客户端写入主节点主节点记录命令主节点发送命令到从节点从节点接收并执行命令数据一致性达成2.2 同步过程详解 ⚙️步骤一建立连接 从节点向主节点发起SYNC或PSYNC命令请求同步。步骤二全量同步 主节点执行BGSAVE生成 RDB 快照文件。将快照文件传输给从节点。从节点清空旧数据加载新快照。步骤三增量同步 主节点将后续写命令缓存在复制积压缓冲区Replication Backlog。从节点持续拉取并执行这些命令。步骤四心跳检测 ❤️主从之间定期发送PING/PONG心跳包确保连接正常。三、搭建主从架构实战 3.1 环境准备 ️假设我们有两台机器角色IP 地址端口Master192.168.1.106379Slave192.168.1.1163793.2 配置主节点 编辑主节点的redis.conf文件bind 0.0.0.0 port 6379 requirepass your_password # 设置密码可选启动主节点redis-server /path/to/redis.conf3.3 配置从节点 ‍编辑从节点的redis.conf文件bind 0.0.0.0 port 6379 slaveof 192.168.1.10 6379 # 指定主节点地址和端口 masterauth your_password # 如果主节点设置了密码启动从节点redis-server /path/to/redis.conf3.4 验证同步状态 ✅在从节点上执行以下命令查看同步状态redis-cli info replication输出示例# Replication role:slave master_host:192.168.1.10 master_port:6379 master_link_status:up四、读写分离实战 4.1 架构设计 ️客户端负载均衡器主节点 - 写操作从节点1 - 读操作从节点2 - 读操作4.2 实现方式 使用中间件如 Twemproxy、Codis或应用程序层路由读写请求importredis# 主节点连接写masterredis.Redis(host192.168.1.10,port6379,passwordyour_password)# 从节点连接读slave1redis.Redis(host192.168.1.11,port6379,passwordyour_password)slave2redis.Redis(host192.168.1.12,port6379,passwordyour_password)defwrite_data(key,value):master.set(key,value)defread_data(key):returnslave1.get(key)orslave2.get(key)五、常见问题与解决方案 ❗5.1 同步延迟过高 ⏱️原因网络带宽不足主节点写入 QPS 过高解决办法升级网络带宽开启repl-disable-tcp-nodelay减少 TCP Nagle 算法影响5.2 从节点频繁重连 原因心跳超时主节点压力过大解决办法调整repl-timeout参数优化主节点性能六、十大面试题精选 序号问题答案要点1Redis 主从复制如何保证数据一致性全量 增量同步机制2PSYNC 和 SYNC 的区别是什么PSYNC 支持断点续传SYNC 不支持3如何判断主从是否同步完成查看info replication中的master_link_status4为什么建议开启密码认证防止未授权访问5主节点宕机后如何手动切换使用SLAVEOF NO ONE提升从节点为主节点6复制积压缓冲区的作用存储增量数据供从节点追赶7读写分离有哪些注意事项注意主从延迟导致的数据不一致8如何优化主从同步性能增加带宽、调整参数、减少大 Key 操作9Redis Cluster 和主从复制的区别Cluster 是去中心化分片主从是中心化复制10什么情况下会触发全量同步初次连接、从节点重启、复制积压缓冲区溢出七、总结表格 功能模块关键点配置项主节点配置绑定地址、端口、密码bind,port,requirepass从节点配置指定主节点、认证密码slaveof,masterauth同步机制全量 增量SYNC/PSYNC性能优化心跳超时、TCP 延迟repl-timeout,repl-disable-tcp-nodelay结语 好了今天的课程就到这里啦是不是感觉主从复制也没那么难记住一句话“主写从读分工明确”下次面试被问到 Redis 主从复制别慌拿出你的知识库怼回去就行我是老曹我们下节课再见