首页/数据/数据库速查/BLPOP / BRPOP 阻塞弹出(队列消费)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条
Redis 命令96 条
Redis 运维与场景124 条

BLPOP / BRPOP 阻塞弹出(队列消费)

阻塞版弹出:列表空时挂起等待,元素到达立刻返回;timeout=0 永久阻塞。多消费者共享一个队列即竞争消费。

数据库速查数据更新于 2026-10-12

示例

示例
RPUSH q job1
BLPOP q 5        # 立即返回:1) q 2) job1
BLPOP q 5        # 队列空:等 5 秒,超时返回 nil
BLPOP q 0        # 永久阻塞直到有元素(断连需重连重试)
# 多键轮询:BLPOP q1 q2 10 按顺序检查多个队列
返回key + value 两元素数组;超时 nil
timeout秒;0 表示无限等待
FIFO配合 RPUSH 使用
阻塞连接要独立管理:长阻塞会占住客户端连接;设置 timeout 并在断开时重连,避免消费者挂死。

易错点

  • BLPOP 超时返回 nil 时误判为「队列关闭」:nil 只是超时,继续循环即可
  • 阻塞命令在事务/MULTI 里不阻塞:嵌套场景语义变化,别在 Lua 里等

数据来源与参考

  • Redis 官方文档: BLPOP
  • Redis 官方文档: BRPOP

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌