一文让你明白Redis主从同步 (3)

当完成了同步之后,主从服务器就会进入命令传播阶段,此时从服务器会以每秒 1 次的频率,向主服务器发送命令:REPLCONF ACK <replication_offset> ,其中 replication_offset 是从服务器当前的复制偏移量

 

发送这个命令主要有三个作用:

 

检测主从服务器的网络状态

辅助实现 min-slaves 选项

检测命令丢失(若丢失,主服务器会将丢失的写命令重新发给从服务器)

 

 3. 总结

 

终于到总结了,我们来总结一下,纪念下我这一个下午的时间。

一文让你明白Redis主从同步

 

发送 SLAVEOF 命令可以进行主从同步,比如:SLAVEOF 127.0.0.6379

主从同步有同步和命令传播 2 个步骤。

同步:将从服务器的数据库状态更新成主服务器当前的数据库状态(一个消耗资源的操作)

命令传播:当主服务器数据库状态被修改后,导致主从服务器数据库状态不一致,此时需要让主从数据同步到一致的过程

主从同步分初次复制和断线后重复制两种情况

从 2.8 版本开始,在出现断线后重复制情况时,主服务器会根据复制偏移量、复制积压缓冲区和 run id,来确定执行完整重同步还是部分重同步

2.8 版本使用 psync 命令来代替 sync 命令去执行同步操作。目的是为了解决同步(sync 命令)的低效操作

 

一文让你明白Redis主从同步

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzgfz.html