BZPOPMAX key [key ...] timeout

BZPOPMAX是有序集 ZPOPMAX 原语的阻塞变体。

该命令是阻塞版本,因为当没有成员可以从任何给定的有序集中弹出时,它会阻塞连接。从非空的第一个有序集中弹出得分最高的成员,按照命令中 key 出现的顺序检查。

timeout参数被解释为一个双精度值,它指定要阻塞的最大秒数。零超时可以无限期地阻塞。

详细参考BZPOPMIN的确切语义,因为BZPOPMAXBZPOPMIN相似,唯一的区别是它弹出得分最高的,而不是弹出得分最低的那些成员。

*返回值

数组: specifically:

  • 如果无法弹出任何元素且超时已过期,nil
  • 返回三元组,第一个元素是弹出成员的键的名称,第二个元素是弹出成员本身,第三个元素是弹出元素的分数。

*历史

  • >= 6.0: timeout 解释为双精度而不是整数。

*例子

redis> DEL zset1 zset2
(integer) 0
redis> ZADD zset1 0 a 1 b 2 c
(integer) 3
redis> BZPOPMAX zset1 zset2 0
1) "zset1"
2) "c"
3) "2"