MST

星途 面试题库

面试题:Redis新版复制功能动态调整机制如何应对网络闪断

在Redis新版复制功能动态调整机制里,当主从节点间出现网络闪断情况时,系统是通过哪些机制和步骤来恢复并确保数据一致性的?
27.5万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

机制与步骤

  1. 心跳检测机制:主从节点之间通过发送心跳包来保持连接状态监测。在网络闪断时,心跳包发送失败,触发主从节点对网络问题的感知。
  2. 部分重同步机制
    • 偏移量记录:主节点会记录自己的复制偏移量(replication offset),从节点也会记录自己当前复制到的主节点偏移量。当网络闪断恢复后,从节点会向主节点发送包含自己当前偏移量的命令。
    • 复制积压缓冲区:主节点维护一个固定大小的复制积压缓冲区(replication backlog),用于记录最近一段时间内的数据写入命令。当从节点告知主节点自己的偏移量后,主节点检查该偏移量是否在复制积压缓冲区中。
    • 数据补发:如果偏移量在缓冲区中,主节点会从该偏移量位置开始,将后续的数据命令补发(部分重同步)给从节点,从而使从节点能继续从断点处进行数据同步,确保数据一致性。
  3. 全量重同步机制
    • 条件触发:如果从节点的偏移量不在主节点的复制积压缓冲区中(如网络闪断时间过长,复制积压缓冲区已覆盖了从节点记录的偏移量相关数据),则会触发全量重同步。
    • 执行过程:主节点会生成一个RDB快照文件,并将其发送给从节点。从节点收到RDB文件后,先清空自己的数据,然后加载RDB文件进行数据恢复。之后主节点会将RDB生成期间的写命令同步给从节点,完成全量重同步,确保数据一致性。