LMPOP

用法
LMPOP numkeys key [ key ... ] 〈 LEFT | RIGHT 〉 [ COUNT count ]
复杂度
O(N+M),其中 N 是提供的键的数量,M 是返回的元素数量。
7.0.0
ACL 类别
@list, @write, @slow

从提供的键名列表中,弹出第一个非空列表键中的一个或多个元素。

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

  • LPOPRPOP,它们只接受一个键,并可以返回多个元素。
  • BLPOPBRPOP,它们接受多个键,但只从一个键中返回一个元素。

有关此命令的阻塞变体,请参阅 BLMPOP

元素根据传入的参数,从第一个非空列表的左侧或右侧弹出。返回的元素数量限制为非空列表的长度与计数参数(默认为 1)中的较小值。

示例

127.0.0.1:6379> LMPOP 2 non1 non2 LEFT COUNT 10
(nil)
127.0.0.1:6379> LPUSH mylist "one" "two" "three" "four" "five"
(integer) 5
127.0.0.1:6379> LMPOP 1 mylist LEFT
1) "mylist"
2) 1) "five"
127.0.0.1:6379> LRANGE mylist 0 -1
1) "four"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> LMPOP 1 mylist RIGHT COUNT 10
1) "mylist"
2) 1) "one"
   2) "two"
   3) "three"
   4) "four"
127.0.0.1:6379> LPUSH mylist "one" "two" "three" "four" "five"
(integer) 5
127.0.0.1:6379> LPUSH mylist2 "a" "b" "c" "d" "e"
(integer) 5
127.0.0.1:6379> LMPOP 2 mylist mylist2 right count 3
1) "mylist"
2) 1) "one"
   2) "two"
   3) "three"
127.0.0.1:6379> LRANGE mylist 0 -1
1) "five"
2) "four"
127.0.0.1:6379> LMPOP 2 mylist mylist2 right count 5
1) "mylist"
2) 1) "four"
   2) "five"
127.0.0.1:6379> LMPOP 2 mylist mylist2 right count 10
1) "mylist2"
2) 1) "a"
   2) "b"
   3) "c"
   4) "d"
   5) "e"
127.0.0.1:6379> EXISTS mylist mylist2
(integer) 0

RESP2 回复

以下之一

  • Nil 回复: 如果没有元素可弹出。

  • 数组回复: 一个两元素数组,其中第一个元素是弹出元素的键名,第二个元素是元素数组。

RESP3 回复

以下之一

  • Null 回复: 如果没有元素可弹出。

  • 数组回复: 一个两元素数组,其中第一个元素是弹出元素的键名,第二个元素是元素数组。