BLMOVE

从列表中弹出一个元素,将其推送到另一个列表并返回它。否则将阻塞,直到元素可用为止。如果移动了最后一个元素,则删除列表。

语法

BLMOVE source destination timeout

引入版本:6.2.0

复杂度摘要:O(1)

[!NOTE] 此命令的行为在集群 Redis 环境中有所不同。请参阅 多键操作 页面了解更多信息。

BLMOVE 是 LMOVE 的阻塞变体。当 source 包含元素时,此命令的行为与 LMOVE 完全相同。当在 MULTI/EXEC 块或 Lua 脚本中使用时,此命令的行为与 LMOVE 完全相同。当 source 为空时,Redis 将阻止连接,直到另一个客户端向其推送或达到 timeout(指定阻止的最大秒数的双精度值)。 timeout 为零可用于无限期阻止。

此命令取代现已弃用的 BRPOPLPUSH。执行 BLMOVE RIGHT LEFT 是等效的。

请参阅 LMOVE 了解更多信息。

必需参数

source

源列表的key。

destination

目的地列表键。

LEFT | RIGHT

source 的末尾,用于弹出元素:LEFT(头)或 RIGHT(尾)。

LEFT | RIGHT

destination 的末尾将元素推送到:LEFT(头)或 RIGHT(尾)。

timeout

最大阻塞时间,单位为秒。 0 超时会无限期地阻塞。

详细说明

模式:可靠队列

请参阅LMOVE文档中的模式描述。

图案:循环列表

请参阅LMOVE文档中的模式描述。

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动

返回值

RESP2

以下之一: * 批量字符串回复:从 来源 中弹出元素并推送到 目的地。 * 无回复:操作超时

RESP3

以下之一: * 批量字符串回复:从 来源 中弹出元素并推送到 目的地。 * 空回复:操作超时

资料来源:Redis 官方 BLMOVE 文档;中文内容参考 Redis 文档许可。