Appearance
Stream消息队列
概述
Stream是Redis 5.0引入的数据结构,弥补了PubSub的不足,支持消息持久化。
基本命令
生产者
redis
XADD mystream * field value # 添加消息,*自动生成ID
XADD mystream 1000000000000-0 field value # 指定ID
XRANGE mystream - + COUNT 10 # 读取消息消费者组
redis
XGROUP CREATE mystream group1 0 # 创建消费者组
XREADGROUP GROUP group1 consumer1 STREAMS mystream 0 # 消费消息
XACK mystream group1 message_id # 确认消息核心特性
| 特性 | 说明 |
|---|---|
| 消息ID | 格式:timestamp-sequence |
| 消费者组 | 支持多消费者、负载均衡 |
| 消息确认 | ACK机制保证消费 |
| 消息持久化 | 保存在Stream中 |
| 范围查询 | 支持ID范围查询 |
面试考点
Q: Stream vs PubSub?
| 特性 | PubSub | Stream |
|---|---|---|
| 持久化 | 否 | 是 |
| 消息确认 | 否 | 是 |
| 消费者组 | 否 | 是 |
| 消息回溯 | 否 | 是 |
Q: Stream应用场景?
- 消息队列
- 事件流处理
- 实时通知
- 日志收集
