*Redis SYNC 命令
Redis 复制的内部命令,用于从节点向主节点请求完整的数据同步。传输整个 RDB 文件。Redis 2.8+ 推荐使用 PSYNC。
*语法
SYNC
*返回值
| 条件 | 返回值 |
|---|---|
| 完整同步 | +FULLRESYNC + RDB 数据 |
*时间复杂度
O(N),N 为数据库中的数据量。
*示例
# 从节点发起完整同步
> SYNC
+FULLRESYNC 07c37dfeb235213a872192d90877d0cd55635b91 0
... RDB 数据 ...
*常见错误
- 非复制上下文:SYNC 是内部命令,通常由从节点自动发起,手动调用可能导致异常。
*最佳实践
- 自动使用: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 完整同步。