*Redis WAIT 命令

阻塞等待当前连接的写命令同步到指定数量的副本(从节点)。


*语法

WAIT numreplicas timeout

*参数说明

参数 类型 必填 说明
numreplicas Integer 需要确认的副本数量
timeout Integer 最大等待时间(毫秒),0 表示永久阻塞

*返回值

条件 返回值
成功 实际确认的副本数量(Integer)
超时 0 或实际已确认数量

*时间复杂度

O(1)

*

*示例

> SET mykey "value"
OK
> WAIT 1 5000
(integer) 1

*常见错误

  1. 超时未确认:在超时时间内未达到指定副本数,返回实际已确认数量。

*最佳实践

  1. 数据一致性:强一致性要求时,写入后执行 WAIT 确保数据同步到至少 N 个副本。
  2. 注意超时:WAIT 会阻塞主节点,超时时间不宜过长。

*FAQ

Q: WAIT 是同步复制吗? A: 不是同步复制,是确认复制。WAIT 等待副本确认收到数据,但副本可能尚未刷盘。

Q: WAIT 会阻塞所有客户端吗? A: 不会。只阻塞当前连接。