MST

星途 面试题库

面试题:Redis部分重同步中如何优化数据传输量

在Redis部分重同步机制里,简述为了减少数据传输量通常采用的优化策略有哪些?
22.1万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试
  1. 部分重传缓冲区
    • Redis 主节点维护一个部分重传缓冲区,该缓冲区记录主节点最近发送给从节点的写命令。当从节点因网络故障等原因断开连接后重新连接时,如果从节点的复制偏移量在部分重传缓冲区的记录范围内,主节点可以直接从缓冲区中提取这部分数据发送给从节点,而不需要重新全量同步所有数据。这样大大减少了数据传输量。
  2. 复制偏移量
    • 主从节点都维护一个复制偏移量。主节点每向从节点发送一定量的数据,就会增加自己的复制偏移量;从节点接收数据后也会相应增加自己的复制偏移量。当从节点重连时,会向主节点发送自己最后的复制偏移量。主节点通过对比该偏移量和部分重传缓冲区的范围,判断是否可以进行部分重同步。如果可以,就基于这个偏移量开始传输后续的数据,避免重复传输已接收过的数据。
  3. 复制积压缓冲区
    • 这是部分重传缓冲区的一种扩展和优化。它是一个环形缓冲区,主节点不断将写命令写入这个缓冲区。从节点断线重连时,主节点根据从节点提供的偏移量,在复制积压缓冲区中找到对应的位置,从该位置开始向从节点重传数据。由于它是环形结构,可以循环使用空间,能更灵活高效地处理数据重传,减少全量重同步的概率,从而减少数据传输量。