BZPOPMAX 返回非空有序集合 key 中分数最大的成员,而 BZPOPMIN 返回该 key 中分数最小的成员,除此之外,两条命令无其他差别。
命令格式
BZPOPMAX key [key ...] timeout
BZPOPMAX 命令是有序集合命令 ZPOPMAX 带有阻塞功能的版本。在参数中的所有有序集合均为空的情况下,阻塞连接。参数中包含多个有序集合时,按照参数中 key 的顺序,返回第一个非空 key 中分数最大的成员和对应的分数,参数 timeout 可以理解为客户端被阻塞的最大秒数值,0表示永久阻塞。
可用版本:>=5.0.0
时间复杂度:O(N),N 为 有序集合的基数(成员个数)。
命令返回值
当有序集合无结果返回或者超时设置过期时返回 nil;
返回三元素 multi-bulk 结果,第一元素 key 名称,第二元素成员名称,第三元素分数。
示例
redis> DEL zset1 zset2
(integer) 0
redis> ZADD zset1 0 a 1 b 2 c
(integer) 3
redis> BZPOPMAX zset1 zset2 0
1) "zet1"
2) "2"
2) "c"