概述
- Redis Stream 是 Redis 5.0 版本引入的数据结构,用于消息传递。
基础概念
- 结构:消息链表,每个消息有唯一 ID 和内容。
- 命名:每个 Stream 有唯一名称,对应 Redis Key。
- 消费组(ConsumerGroup):
- 可挂载多个消费组,需手动创建。
- 每个组有游标
last_delivered_id
,记录消费进度。
- 消费者(Consumer):
- 消费组内可挂载多个消费者。
- 并行读取消息,更新消费组游标。
- 内部属性
pending_ids
记录未确认消息 ID。
核心命令
- XADD:添加消息到 Stream 末尾。
- 使用
*
让 Redis 自动生成消息 ID。 - 可指定 Stream 长度,如
MAXLEN
。
- 使用
- XLEN:获取 Stream 长度。
- XRANGE:获取消息列表,自动过滤已删除消息。
- XREAD:阻塞/非阻塞方式获取消息。
- 使用
BLOCK
选项实现阻塞读取。
- 使用
- X