BZPOPMAX
从一个或多个有序集合中删除并返回得分最高的成员。阻塞直到有其他可用的成员为止。 如果最后一个元素被弹出,则删除有序集合。
语法
BZPOPMAX key [key ...] timeout
引入版本:5.0.0
复杂度摘要:O(log(N)
[!NOTE] 此命令的行为在集群 Redis 环境中有所不同。请参阅 多键操作 页面了解更多信息。
BZPOPMAX 是有序集 ZPOPMAX 原语的阻塞变体。
它是阻塞版本,因为当没有可以从任何给定有序集合中弹出的成员时,它会阻塞连接。从第一个非空有序集合中弹出得分最高的成员,并按照给定键的顺序检查给定键。
timeout 参数被解释为双精度值,指定要阻止的最大秒数。超时为零可用于无限期阻塞。
请参阅 BZPOPMIN文档 了解确切的语义,因为 BZPOPMAX 与 BZPOPMIN 相同,唯一的区别是它弹出分数最高的成员,而不是弹出分数最低的成员。
必需参数
key [key ...]
要从中弹出的一个或多个有序集合键。
timeout
最大阻塞时间,单位为秒。 0 超时会无限期地阻塞。
示例
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"
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 标准 |
✅ 标准 |
返回值
RESP2
以下情况之一: * 无回复:当无法弹出任何元素且 超时 过期时。 * 数组回复:键名、弹出的成员及其分数。
RESP3
资料来源:Redis 官方 BZPOPMAX 文档;中文内容参考 Redis 文档许可。