Redis 命令传播的心跳检测
Redis 命令传播的心跳检测
命令传播阶段,从服务器默认会以每秒一次的频率向主服务器发送命令,命令为 REPLCONF ACK 复制偏移量,它可以用来检测主从服务器的网络连接状态,辅助实现 min-slaves 选项,检测命令丢失
检测主从服务器的网络连接状态
主从服务器可以通过发送和接收 REPLCONF ACK 命令来检查网络连接是否正常,超过一秒没有收到从服务器发来的 REPLCONF ACK 命令,说明连接出了问题
实现 min-slaves 配置选项
Redis 的 min-slaves-to-write 和 min-slaves-max-lag 用来防止主服务器在不安全的情况下执行写命令,也就是从服务器的数量少于 min-slaves-to-write 配置的个数或者从服务器的延迟值大于 min-slaves-max-lag 配置的秒数,主服务器将拒绝执行写命令。
检测命令丢失
主服务器传播给从服务器的写命令在半路丢失,那么当从服务器向主服务器发送 REPLCONF ACK 命令时,主服务器发现从服务器当前的复制偏移量比自己的复制偏移量少,主服务器就会根据从服务器的复制偏移量,在复制积压缓冲区里面找到从服务器缺少的数据,将这些数据重新发送给从服务器
这就是 Redis 命令传播的心跳检测的三个作用,今天我们简单介绍了一下,心跳检测对 redis 复制还是至关重要的。总结一下就是心跳检测可以用来检测主从服务器的网络连接状态,辅助实现 min-slaves 选项和检测命令丢失。接下来的文章中我们会对 redis 的哨兵机制进行详细的分析,我们一起学习 redis,一起掌握好它利用好它,更好的运用在工作和学习中,加油吧💪🏻
版权声明: 本文为 InfoQ 作者【周杰伦本人】的原创文章。
原文链接:【http://xie.infoq.cn/article/9c79e7fd08ec368294670a2bc】。文章转载请联系作者。
评论