尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
对主从复的理解
1. 什么是主从复制作用是什么参考答案主从复制就是把主节点(master)的数据同步到从节点(slave/replica)。master负责接收写请求slave复制master数据一般只提供读服务。三大作用读写分离写走主读请求分摊到从节点提升读吞吐量。数据备份从节点保存一份副本防止单节点数据丢失。高可用基础主节点故障时可以把从节点提升为主节点故障转移。注意主从本身不自动故障转移自动切换需要哨兵Sentinel。2. Redis主从复制完整流程是什么参考答案Redis复制分为全量复制和增量复制。① 全量复制第一次建立复制、从库重启、replid不匹配时触发从节点向主节点发送PSYNC ? -1请求同步数据。master执行bgsave生成RDB快照。master把RDB文件发给从节点在生成RDB、传输RDB期间master新收到的写命令放到复制积压缓冲区repl‑backlog。从节点收到RDB清空本地旧数据加载RDB。加载完成后master把积压缓冲区里面新增的写命令发给从节点从节点回放执行追平数据。② 增量复制网络短暂断开重连从节点断线重连携带自己的replid和offset偏移量。master检查repl‑backlog缓冲区中是否还保存该offset之后的数据。如果还在直接把offset之后的命令发给从节点执行不需要全量RDB。如果缓冲区已经覆盖掉该offset只能触发一次全量复制。关键名词replid主节点唯一复制IDoffset复制偏移量主从各自维护代表已经同步到哪个位置repl‑backlog 复制积压缓冲区环形缓冲区。3. 什么是复制积压缓冲区 repl‑backlog作用参数参考答案复制积压缓冲区是master上一个环形固定大小缓冲区。 master执行写命令时除了发给从库同时把命令写入这个环形buffer。作用 从节点网络短暂断连恢复后不需要全量同步只需要根据offset拉取缓冲区后续命令做增量同步。环形写满会覆盖旧数据。如果断线时间太长offset对应数据已经被覆盖只能走全量复制。参数repl‑backlog‑size业务读多写少可以调小写压力大要调大避免频繁全量复制。4. 主从同步两种模式异步复制 / 半同步复制参考答案1异步复制Redis默认master执行完写命令立刻返回给客户端不等从节点复制完成。 优点性能很高 风险master刚写完还没同步到slave就宕机数据丢失。2半同步复制Redis叫min‑replicasMySQL叫semi‑syncmaster收到写请求至少等待N个从节点收到这条命令才返回成功给客户端。Redis配置min‑replicas‑to‑write/min‑replicas‑max‑lag。优点降低数据丢失概率 缺点延迟变大如果从节点全部卡住主节点写会被阻塞。注意半同步只是保证从节点收到命令不一定已经完全执行完。不是强一致。5. 主从复制会有什么问题问题1数据不一致、延迟主从延迟参考答案主从延迟主已经写完从还没有回放完这条数据读从库读到旧数据。 产生原因网络带宽、网络抖动master写压力大命令传输量大slave本身CPU慢回放命令跟不上master速度全量同步时RDB加载阶段从节点无法处理同步命令。解决思路对一致性要求高的读请求直接读主节点监控offset差值延迟过大把读请求切回主调大repl‑backlog‑size减少频繁全量同步。问题2全量复制风暴参考答案当大量从节点同时触发全量复制master多次执行bgsave生成RDB大量网络带宽传输RDB文件。 会打满master磁盘IO、网卡带宽拖垮主节点。解决方案不要所有从直接连主搭建从的从级联复制slave‑of another‑slave错开从节点重启时间避免同时全量同步自研KV可以支持快照文件离线分发。问题3主节点宕机数据丢失场景参考答案异步模式下master执行完写返回客户端数据还在内存尚未发送给slave此时master断电宕机。 这部分新数据完全丢失。半同步可以缓解但不能100%杜绝。6. 级联复制是什么好处和问题参考答案slave不仅可以复制masterslave下面还可以再接从节点形成树状拓扑。好处减轻master压力大量从节点的同步压力分摊给中间层从节点。缺点同步链路变长主从延迟逐级放大中间节点故障下游全部受影响。7. 主从复制 vs 哨兵Sentinel区别参考答案主从复制只负责数据同步没有故障检测、没有自动切换。主挂了需要人工操作提升从。Sentinel哨兵监控主从节点主故障自动选从提升为主通知客户端新主地址。 哨兵本身依赖底层主从复制。哨兵解决高可用不解决数据一致性。8. 主从复制和集群分片的区别参考答案主从复制全量数据复制。每个从都保存完整数据集解决读写分离、备份、高可用。数据不拆分。集群分片把数据hash拆分到多个master节点每个节点只存一部分数据解决数据容量水平扩展每个分片内部再做自己的主从。简单一句话分片解决存不下主从解决读压力和高可用。9. MySQL主从和Redis主从简单区别参考答案MySQL基于binlog二进制日志Redis复制是传播执行命令。MySQL支持GTIDRedis使用replidoffset。MySQL有statement/mixed/row格式Redis直接复制原始命令。MySQL半同步有after‑sync/after‑commit两种模式。❌避雷错误❌主从复制可以自动故障转移 ✅不能需要哨兵。❌半同步复制绝对不会丢数据 ✅只是降低概率网络异常依然可能丢。❌主从一定强一致 ✅默认异步是最终一致性存在主从延迟。❌复制积压缓冲区无限大 ✅环形缓冲区会覆盖旧数据断线太久触发全量。速记小结流程全量快照backlog回放增量offsetrepl‑backlog核心三要素replid复制ID、offset偏移量、repl‑backlog环形积压缓冲区同步模式异步高性能可能丢数据半同步至少N个从收到才返回典型故障主从延迟、全量复制风暴、脑裂、断线后全量同步哨兵负责自动故障切换主从只管数据同步分片解决容量主从解决读与高可用。参考链接 0voice · GitHub
RELATED

相关推荐

Halcon 3D点云平面拟合与距离计算:5个必踩的陷阱与规避方法

Halcon 3D点云平面拟合与距离计算:5个必踩的陷阱与规避方法

上个月处理一个结构光相机的3D测高项目,点云在Halcon里做完平面拟合后,渲染出来的平面贴合度非常好,肉眼几乎看不出缝隙,但输出到产线的距离数据始终比千分尺实测值偏了0.4mm。整个下午都在反复检查算子调用、点云滤波和标定参数&…

📅 2026/10/3 2:21:34
选了合规全托管之后会怎样?一家71亿上市公司用三年回答了这个问题

选了合规全托管之后会怎样?一家71亿上市公司用三年回答了这个问题

版本说明:本篇是外贸邮件营销技术系列的第五篇,定位是"验证"。第四篇《四格通道地图、决策树V2与一家医疗床工厂的三年账》解决了"选哪个"的问题,本篇解决"选了之后到底会怎样"。核心证据:一家2025…

📅 2026/10/3 2:21:34
codeforces-go 题解:最长相邻不等分组子序列 I —— 连续相同段贪心取一个的 O(n) 解法

codeforces-go 题解:最长相邻不等分组子序列 I —— 连续相同段贪心取一个的 O(n) 解法

科学计算 【免费下载链接】codeforces-go 算法竞赛模板库 by 灵茶山艾府 💭💡🎈 项目地址: https://gitcode.com/GitHub_Trending/co/codeforces-go 点击查看 免费下载 导读 本文讲解 LeetCode 第 115 场双周赛 B 题 "Long…

📅 2026/10/3 2:21:34
MORE NEWS

更多资讯

📰

K8s集群Kubectl命令高阶运维实操

K8s集群Kubectl命令高阶运维实操技术栈:Kubernetes v1.32.13 Rocky Linux 8.6 Containerd 1.7.x操作环境 / 对接原理 / 详细步骤 / 完整命令 / 配置文件 / 验证流程 / 排错方案K8s集群Kubectl命令高阶运维实操操作环境K8s 集群 3 节点:k8s-master(192.…

📰

从Postman到Apifox:API一站式协作与自动化测试实战指南

说实话,第一次打开 Apifox,我的第一反应是:"这不就是个换了皮肤的 Postman 吗?" 但真正用它写完一个项目的接口文档、Mock 数据、自动化测试之后,我承认当初的判断太草率了。这玩意儿本质上不是一个"调…

📰

Apifox从入门到实战:接口调试、Mock与自动化测试全攻略

1. 从工具链割裂说起:Apifox到底在解决什么问题只要做过接口开发或者接口测试,大概都经历过一段“工具满天飞”的日子:用 Postman 调接口、用 Swagger 看文档、用 Jenkins 跑自动化、用 RAP 或者 YApi 做 Mock,每个环节都挺好用&a…

📰

分布式锁选型指南:Redis、ZooKeeper与数据库方案全解析

1. 从一次订单超卖事故说起先聊一个我踩过的真实事故:线上商城做秒杀活动,活动刚开始两分钟,后台告警短信就炸了——库存扣成了负数。当时我们的订单服务有两台机器在跑,扣减库存的逻辑是先查库存、再update数据库。两台机器同时读…

📰

分布式锁选型指南:Redis、ZooKeeper与数据库锁方案实战对比

做分布式系统最绕不开的一个基础组件,就是分布式锁。我见过不少团队在并发量上来之后,才发现本地锁根本管不住多实例同时抢资源的问题,于是匆忙在 Redis、ZooKeeper、数据库这三个方案里选一个落地。结果选型时只看了一篇表面文章&#xff0c…

📰

提示工程+LoRA微调:让大模型生成可直接进CI的Java单元测试

1. 项目概述1.1 为什么想做这个项目说实话,让大语言模型帮你写单元测试用例这件事,听起来很爽,但真正做起来全是细节。我在维护一个中大型Java服务时,每天最烦的就是写那些重复的测试代码:构造函数塞参数、Mock依赖、断…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬