*Redis zmpop 命令

*语法

ZMPOP numkeys key [key ...]  [COUNT count]

从提供的键名列表中弹出第一个非空有序集合中的一个或多个元素(成员-分数对)。

ZMPOPBZMPOP 类似于以下更受限制的命令:

  • ZPOPMINZPOPMAX,它们只接受一个键,并且可以返回多个元素。
  • BZPOPMINBZPOPMAX,它们接受多个键,但只从一个键返回一个元素。

有关此命令的阻塞变体,请参见 BZMPOP

当使用 MIN 修饰符时,弹出的元素是那些来自第一个非空有序集合的分数最低的成员。MAX 修饰符导致弹出分数最高的元素。 可选的 COUNT 可用于指定要弹出的元素数量,默认为 1。

弹出的元素数量是取有序集合的基数和 COUNT 值中的较小值。

此命令在集群化 Redis 环境中的行为有所不同。有关更多信息,请参阅多键操作页面。

*示例

redis> ZMPOP 1 notsuchkey MIN
ERR Unknown or disabled command 'ZMPOP'
redis> ZADD myzset 1 "one" 2 "two" 3 "three"
(integer) 3
redis> ZMPOP 1 myzset MIN
ERR Unknown or disabled command 'ZMPOP'
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
redis> ZMPOP 1 myzset MAX COUNT 10
ERR Unknown or disabled command 'ZMPOP'
redis> ZADD myzset2 4 "four" 5 "five" 6 "six"
(integer) 3
redis> ZMPOP 2 myzset myzset2 MIN COUNT 10
ERR Unknown or disabled command 'ZMPOP'
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
redis> ZMPOP 2 myzset myzset2 MAX COUNT 10
ERR Unknown or disabled command 'ZMPOP'
redis> ZRANGE myzset2 0 -1 WITHSCORES
1) "four"
2) "4"
3) "five"
4) "5"
5) "six"
6) "6"
redis> EXISTS myzset myzset2
(integer) 2
redis>

*返回值说明

RESP2:以下之一:

  • Nil reply: 当没有元素可以被弹出时。
  • 数组回复: 一个包含两个元素的数组,第一个元素是弹出元素的键名,第二个元素是弹出元素的数组。元素数组中的每个条目也是一个包含成员及其分数的数组。

RESP3:以下之一:

  • Null reply: 当没有元素可以被弹出时。
  • 数组回复: 一个包含两个元素的数组,第一个元素是弹出元素的键名,第二个元素是弹出元素的数组。元素数组中的每个条目也是一个包含成员及其分数的数组。