BZPOPMAX

语法
BZPOPMAX key [key ...] timeout
可用版本
Redis 开源版 5.0.0
时间复杂度
O(log(N)),其中 N 为有序集合中的元素数量。
ACL 类别
@write, @sortedset, @fast, @blocking,

BZPOPMAX 是有序集合原始命令 ZPOPMAX 的阻塞变体。

它是阻塞版本,因为当给定的有序集合中没有成员可供弹出时,它会阻塞连接。将从第一个非空的有序集合中弹出一个分数最高的成员,按照给定键的顺序进行检查。

timeout 参数被解释为双精度浮点值,指定了最大阻塞秒数。超时时间为零表示无限期阻塞。

请参阅 BZPOPMIN 文档了解确切的语义,因为 BZPOPMAXBZPOPMIN 完全相同,唯一的区别是它弹出分数最高的成员而不是分数最低的成员。

示例

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"

RESP2 回复

以下之一

  • Nil 回复:当没有可弹出的元素并且 timeout 已过期时。
  • 数组回复:键名、被弹出的成员及其分数。

RESP3 回复

以下之一

  • Null 回复:当没有可弹出的元素并且 timeout 已过期时。
  • 数组回复:键名、被弹出的成员及其分数。

历史

  • 从 Redis 6.0.0 版本开始:timeout 被解释为双精度浮点数而不是整数。
评价此页面
返回顶部 ↑