BZPOPMAX
是有序集 ZPOPMAX 原语的阻塞变体。
该命令是阻塞版本,因为当没有成员可以从任何给定的有序集中弹出时,它会阻塞连接。从非空的第一个有序集中弹出得分最高的成员,按照命令中 key 出现的顺序检查。
该timeout
参数被解释为一个双精度值,它指定要阻塞的最大秒数。零超时可以无限期地阻塞。
详细参考BZPOPMIN
的确切语义,因为BZPOPMAX
和BZPOPMIN
相似,唯一的区别是它弹出得分最高的,而不是弹出得分最低的那些成员。
*返回值
数组: 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"