Redis的replication在从属设备与主设备连接时启动。但是在初始复制结束后,奴隶如何与主人保持同步?我找不到描述这种机制的文档的任何部分。特别是,如何测量主设备和从设备之间的延迟?
答案 0 :(得分:2)
初始复制后,主机将更改写入内部缓冲区并将其发送给从机。来自replication页面:
然后,主设备将向从设备发送所有缓冲命令。这是 作为命令流完成,并且与Redis的格式相同 协议本身。
您可以在GitHub上查看full replication source code(这指向Redis 3.0版),了解详细信息。
就延迟而言,有page dedicated to latency troubleshooting和one dedicated to latency monitoring。这两个页面包含大量背景信息和技术来排除/测量Redis延迟。一个简单的起点是将redis-cli --latency -h 'host' -p 'port'
从从站运行到主站和/或从主站运行到从站。
答案 1 :(得分:1)
我相信你可以通过在奴隶身上发出INFO replication
并检查slave_repl_offset
的价值来找到答案。