LMPOP
从列表中删除多个元素后返回它们。如果弹出最后一个元素,则删除列表。
语法
LMPOP numkeys key [key ...] [COUNT count]
引入版本:7.0.0
复杂度摘要:O(N+M)
[!NOTE] 此命令的行为在集群 Redis 环境中有所不同。请参阅 多键操作 页面了解更多信息。
从提供的键名称列表中的第一个非空列表键中弹出一个或多个元素。
LMPOP 和 BLMPOP 类似于以下更有限的命令:
请参阅 BLMPOP 了解此命令的阻塞变体。
根据传递的参数从第一个非空列表的左侧或右侧弹出元素。返回元素的数量限制为非空列表的长度和 count 参数(默认为 1)之间的较小者。
必需参数
numkeys
后面的键的数量。
key [key ...]
列表中的一个或多个按键进行操作。
LEFT | RIGHT
要从中弹出元素的列表末尾:LEFT(头)或RIGHT(尾)。
可选参数
COUNT count
要弹出的元素数量。默认为 1。
示例
redis> LMPOP 2 non1 non2 LEFT COUNT 10
(nil)
redis> LPUSH mylist "one" "two" "three" "four" "five"
(integer) 5
redis> LMPOP 1 mylist LEFT
1) "mylist"
2) 1) "five"
redis> LRANGE mylist 0 -1
1) "four"
2) "three"
3) "two"
4) "one"
redis> LMPOP 1 mylist RIGHT COUNT 10
1) "mylist"
2) 1) "one"
2) "two"
3) "three"
4) "four"
redis> LPUSH mylist "one" "two" "three" "four" "five"
(integer) 5
redis> LPUSH mylist2 "a" "b" "c" "d" "e"
(integer) 5
redis> LMPOP 2 mylist mylist2 right count 3
1) "mylist"
2) 1) "one"
2) "two"
3) "three"
redis> LRANGE mylist 0 -1
1) "five"
2) "four"
redis> LMPOP 2 mylist mylist2 right count 5
1) "mylist"
2) 1) "four"
2) "five"
redis> LMPOP 2 mylist mylist2 right count 10
1) "mylist2"
2) 1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
redis> EXISTS mylist mylist2
(integer) 0
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 标准 |
✅ 标准 |
返回值
RESP2
以下之一: * 无回复:如果无法弹出元素。 * 数组回复:一个双元素数组,第一个元素是从中弹出元素的键的名称,第二个元素是元素数组。
RESP3
以下之一: * 空回复:如果无法弹出元素。 * 数组回复:一个双元素数组,第一个元素是从中弹出元素的键的名称,第二个元素是元素数组。
资料来源:Redis 官方 LMPOP 文档;中文内容参考 Redis 文档许可。