redis 主从复制 过程
1.redis 内部会发出一个同步命令,刚开始是Psync ? -1 表示要求master主机同步数据
2.主机会向从机发送 runid 和 offset,因为slave并没有对应的offset,所以是全量复制
3.从机slave会保存主机master的基本信息 save masterInfo
4.主节点收到全量复制的命令后,执行bgsave(异步执行),在后台生成RDB文件(快照,4.0之后不用生成RDB文件也可以,使用无磁盘化复制),并使用一个缓冲区(称为复制缓冲区,会记录偏移量)记录从现在开始的写命令
5.主机send RDB 文件给从机
6.发送缓冲区数据
7.刷新旧的数据,从节点在载入主节点的数据之前要先将老数据清除
8.加载RDB 文件将数据库状态更新至主节点执行bgsave时的数据库状态和缓冲区数据的加载
-----部分复制------
1.如果出现网络抖动(连接断开 connection lost)
2.主机master 还是会写 replbackbuffer(复制缓冲区)
3.从机slave 会继续尝试连接主机
4.从机slave会把自己当前runid和偏移量传输给主机master,并且执行pysnc命令同步
5.如果master发现你的偏移量是在缓冲区范围内,就会返回continue命令
6.同步了offset的部分数据,所以部分复制的基础就是偏移量offset
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了