关于偏移量问题

来源:6-4 主从复制原理剖析

慕粉1559449418

2020-12-12

老师你好,关于master_repl_offset和second_repl_offset不太明白
在主从复制场景中,
1、如果从节点宕机一段时间后,再去连接主节点,主节点会根据从节点发过去的offset判断是否需要进行全量复制,那么这个offset是master_repl_offset对吧,主节点会根据它所持有的offset(master_repl_offset)和从发过来的offset进行比对,如果相等那么不进行同步,如果不等那么就将这两个offset之间的命令再发送给从节点完成同步
2、如果主节点宕机了,那么就会通过哨兵完成主节点的选举,为了避免全量复制,你说通过second_repl_offset判断是否需要全量,那么这个second_repl_offset在主从节点上是如何变化的,何时被赋值的,另外从节点发送的是哪个offset,主节点用哪个offset进行比对,原来的那个master_repl_offset此时起到什么作用

希望老师能尽快解答!

写回答

2回答

慕粉1559449418

提问者

2020-12-13

谢谢老师的解答,第八、九章什么时候更新

0
1
InCowboy
今天已经更新完了哈
2020-12-14
共1条回复

InCowboy

2020-12-13

第一个总结是正确的,第二个问题的second_repl_offset是主从切换时写入当时切换前的主节点的偏移量,用于切换后的其他从节点的复制是否全量。

0
1
菜鸟中的老鸟_2020
老师,正好看到这里,想确认下我的理解,如果从节点发现自己offset为2000,second_repl_offset为2000,则说明自己在主从切换前已经有了所有数据,所以不用复制数据,如果从节点发现自己offset为1998,second_repl_offset为2000则说明自己在主从切换前少了2个字节,这时是增量复制2个字节数据还是全量复制所有数据?
2021-12-01
共1条回复

高级Redis进阶课 解决Redis实际问题+掌握Redis6.x特性

以项目整合Redis各种场景,从此轻松应对各类Redis难题

934 学习 · 353 问题

查看课程