MST

星途 面试题库

面试题:Redis中PSYNC命令在常见网络异常下的错误处理机制是什么

在Redis的主从复制场景中,PSYNC命令用于实现主从节点的数据同步。当网络出现短暂中断、延迟等常见异常情况时,Redis是如何利用PSYNC命令的错误处理机制来保障数据同步的继续进行以及数据的一致性?请简要阐述。
47.7万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试
  1. 全量重同步
    • 从节点首次连接主节点,或从节点判定无法进行部分重同步时,会使用全量重同步。
    • 主节点收到从节点发送的PSYNC命令,若不支持部分重同步,主节点执行BGSAVE生成RDB文件,并将文件发送给从节点。同时,主节点会在内存中缓存新的写命令。
    • 从节点清空现有数据,加载主节点传来的RDB文件。加载完成后,从节点接收主节点缓存的写命令,完成全量重同步。
  2. 部分重同步
    • 部分重同步的条件:网络短暂中断恢复后,若从节点保存的主节点runId与当前主节点一致,且从节点记录的复制偏移量在主节点的复制积压缓冲区(repl_backlog)范围内,就可以进行部分重同步。
    • 部分重同步流程:从节点向主节点发送PSYNC命令,携带主节点runId和复制偏移量。主节点判断可以进行部分重同步后,从复制积压缓冲区中找到从节点偏移量之后的数据,发送给从节点。从节点接收这些数据并应用,从而恢复数据同步,保障数据一致性。