BRPOPLPUSH
从列表中弹出一个元素,将其推送到另一个列表并返回它。阻塞直到有元素可用为止。如果弹出最后一个元素,则删除列表。
语法
BRPOPLPUSH source destination timeout
引入版本:2.2.0
复杂度摘要:O(1)
[!NOTE] 此命令的行为在集群 Redis 环境中有所不同。请参阅 多键操作 页面了解更多信息。
BRPOPLPUSH 是 RPOPLPUSH 的阻塞变体。当 source 包含元素时,此命令的行为与 RPOPLPUSH 完全相同。当在 MULTI/EXEC 块或 Lua 脚本中使用时,此命令的行为与 RPOPLPUSH 完全相同。当 source 为空时,Redis 将阻塞连接,直到另一个客户端向其推送或到达 timeout。 timeout 为零可用于无限期阻止。
请参阅 RPOPLPUSH 了解更多信息。
必需参数
source
源列表的key。
destination
目的地列表键。
timeout
最大阻塞时间,单位为秒。 0 超时会无限期地阻塞。
详细说明
模式:可靠队列
请参阅RPOPLPUSH文档中的模式描述。
图案:循环列表
请参阅RPOPLPUSH文档中的模式描述。
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 标准 |
✅ 标准 |
从 Redis v6.2.0 开始已弃用。 |
返回值
RESP2
以下之一: * 批量字符串回复:从 来源 弹出并推送到 目的地 的元素。 * 无回复:超时。
RESP3
资料来源:Redis 官方 BRPOPLPUSH 文档;中文内容参考 Redis 文档许可。