*Redis SYNC 命令

Redis 复制的内部命令,用于从节点向主节点请求完整的数据同步。传输整个 RDB 文件。Redis 2.8+ 推荐使用 PSYNC。


*语法

SYNC

*返回值

条件 返回值
完整同步 +FULLRESYNC + RDB 数据

*时间复杂度

O(N),N 为数据库中的数据量。


*示例

# 从节点发起完整同步
> SYNC
+FULLRESYNC 07c37dfeb235213a872192d90877d0cd55635b91 0
... RDB 数据 ...

*常见错误

  1. 非复制上下文:SYNC 是内部命令,通常由从节点自动发起,手动调用可能导致异常。

*最佳实践

  1. 自动使用:SYNC 由 Redis 内部自动调用,用于从节点复制。无需手动调用。Redis 2.8+ 优先使用 PSYNC 支持部分同步。

*FAQ

Q: SYNC 和 PSYNC 有什么区别? A: SYNC 总是传输完整 RDB 文件;PSYNC 支持部分同步,只传输差异数据。Redis 2.8+ 使用 PSYNC 替代 SYNC,减少同步开销。

Q: 什么时候还会用 SYNC? A: 当 PSYNC 部分同步失败(如复制积压缓冲区不足)时,Redis 内部会自动降级为 SYNC 完整同步。