BLMPOP
从多个列表之一中弹出第一个元素。否则将阻塞,直到元素可用为止。如果弹出最后一个元素,则删除列表。
语法
BLMPOP timeout numkeys key [key ...] [COUNT count]
引入版本:7.0.0
复杂度摘要:O(N+M)
[!NOTE] 此命令的行为在集群 Redis 环境中有所不同。请参阅 多键操作 页面了解更多信息。
BLMPOP 是 LMPOP 的阻塞变体。
当任何列表包含元素时,此命令的行为与 LMPOP 完全相同。当在 MULTI/EXEC 块或 Lua 脚本中使用时,此命令的行为与 LMPOP 完全相同。当所有列表都为空时,Redis 将阻止连接,直到另一个客户端推送到它或直到 timeout(指定阻止的最大秒数的双精度值)过去。 timeout 为零可用于无限期阻止。
请参阅 LMPOP 了解更多信息。
必需参数
timeout
最大阻塞时间,单位为秒。 0 超时会无限期地阻塞。
numkeys
后面的键的数量。
key [key ...]
列表中的一个或多个按键进行操作。
LEFT | RIGHT
要从中弹出元素的列表末尾:LEFT(头)或RIGHT(尾)。
可选参数
COUNT count
要弹出的元素数量。默认为 1。
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 标准 |
✅ 标准 |
返回值
RESP2
以下情况之一: * 无回复:当无法弹出任何元素并且到达 超时 时。 * 数组回复:一个双元素数组,第一个元素是弹出元素的键的名称,第二个元素是弹出元素的数组。
RESP3
以下情况之一: * 空回复:当无法弹出任何元素并且到达 超时 时。 * 数组回复:一个双元素数组,第一个元素是弹出元素的键的名称,第二个元素是弹出元素的数组。
资料来源:Redis 官方 BLMPOP 文档;中文内容参考 Redis 文档许可。