*Redis XREAD 命令 从多个 Stream 读取消息(可阻塞)

*语法

XREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] ID [ID ...]

*说明

从多个 Stream 读取消息。

选项

  • COUNT:返回的最大消息数量
  • BLOCK:阻塞等待毫秒数(0 表示永久阻塞)
  • STREAMS:指定要读取的 Stream
  • ID$ 表示只读取新消息,0 表示读取所有历史消息

*返回值

  • 数组:消息列表或 nil(超时)

*时间复杂度

  • O(N),N 是返回的消息数量

*版本兼容性

Redis 版本 说明
>= 5.0.0 可用

*示例

# 读取所有历史消息
redis-cli XREAD STREAMS mystream 0

# 阻塞等待新消息
redis-cli XREAD BLOCK 5000 STREAMS mystream $

# 从多个 Stream 读取
redis-cli XREAD STREAMS stream1 stream2 0 0