Redis主从复制原理
2021-04-25 17:49:54 0 举报
Redis主从复制的原理
作者其他创作
大纲/内容
数据同步阶段的工作流程
偏移量:offset
复制缓冲区
4、第一个slave连接时创建命令缓冲区
建立连接阶段的工作流程
9、接收指令、发送复制缓冲区命令
1:设置master地址和端口号、保存master信息2:和Master建立socket连接3:周期性发送ping信息 (定时器)4:发送身份验证信息5:发送Slave端口信息至此、主从连接成功!当前状态: Slave: 保存Master地址和端口号信息 Master: 保存Slave的端口信息 总体: 之间建立socket连接
6、响应 pong 信息
11、接收指令进行响应
4、根据保存信息与Master建立链接Socket
2、接收命令、响应对方
7、发送命令告知RDB文件已经恢复完成
$3\\set\\$4\\name\\$7\\token
set
1、发送命令:saveof ip prot
7、发送指令:auth password
8、验证授权
5、周期性发送命令:ping
6、接收RDB文件、清空数据、执行RDB文件恢复过程
9、发送命令:replconf listening-prot <port-number>
组成: 偏移量 字节码工作原理: 1、通过offset来区分Slave当前数据传播位置 2、Master记录每个Slave已尽发送过的命令偏移位置 3、Slave记录已尽接收过的命令偏移位置
Slave
1:请求同步数据2:创建RDB同步数据3:恢复RDB同步数据4:请求部分同步数据5:恢复部分同步数据至此、主从同步数据完成!当前状态: Slave: 具有Master所有数据、包括RDB过程接收的数据 Master: 保存Slave当前数据同步的位置 总体: Master-Slave之间完成数据克隆
10、发送指令:???
偏移量
788
789
790
791
792
793
794
795
字节值
……
$
3
\
4
s
2、接收PSYNC命令
3、执行bgSave
set name token
Master
10、保存Slave的ip和端口号
3、保存master的信息:MasterIp、Masterport
8、接收命令执行bgrewiteof进行回放
5、生成RDB文件、通过Socket发送给Slave
1、发送指令:PSYNC
0 条评论
回复 删除
下一页