🥚 吃面加不加蛋,思考许久

⚔ 闪光诀

🔥 轰天一击龙抬头

25.Redis WAIT - 阻塞当前客户端,等待数据同步

Redis WAIT - 语法

WAIT numreplicas timeout

Redis WAIT命令,用于阻塞当前客户端,直到所有先前的写入命令都成功传输,并被指定数量的副本(从节点)确认为止。如果达到超时时间(以毫秒为单位),即使尚未达到指定的副本数量,该命令也会立即返回。

无论是达到指定的副本数量时,还是达到超时时间时,该命令都将会在WAIT命令之前返回 已确认当前客户端发送的写入命令的副本数量。说明:

  1. 当WAIT返回时,表示在当前连接的上下文中发送的所有先前写入命令都已被N个副本接收,其中N为WAIT返回的数量。
  2. 如果该命令作为MULTI事务中的一部分进行发送,那么将不会阻塞,而是尽快返回 已确认的先前写入命令的副本数量。
  3. timeout为0表示永久阻塞。
  4. 由于WAIT在失败和成功的情况下都会返回到达的副本数量,因此客户端应该检查返回的值是否等于或大于它所要求的复制级别。

Redis WAIT - 时间复杂度

O(1)

Redis WAIT - 返回值

该命令返回当前连接上下文中执行的所有写入所达到的副本数量。

Redis WAIT - 实例演示

redis> set site "www.cregend.com"
OK
redis> wait 1 1000
(integer) 1
redis> wait 2 1000
(integer) 1

因为只有一个可用副本,所以第二个WAIT命令也是只返回1。

轻松一刻

👉👉👉 【武映三千道】教您最小成本化试错:大长腿、露香肩、会撒娇,女主美若天仙即可,其余皆可恐龙......