首页/数据/数据库速查/Streams 基础:XADD / XREAD / XRANGE
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条Redis 命令96 条
Redis 运维与场景124 条

Streams 基础:XADD / XREAD / XRANGE

Stream 是 Redis 5 的追加式消息日志:XADD 追加(自动生成 时间戳-序号 ID),XRANGE 范围读,XREAD 阻塞读新消息,天然支持回溯与多消费者。

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

写入与读取

写入与读取
XADD orders * user u1 amount 99     # * 自动生成 ID,如 1737100000000-0
XADD orders * user u2 amount 12
XLEN orders
XRANGE orders - + COUNT 10          # 从头读
XREVRANGE orders + - COUNT 10       # 从尾读
XREAD COUNT 5 BLOCK 3000 STREAMS orders $   # 阻塞 3s 读「新」消息($=只读新)
XTRIM orders MAXLEN ~ 100000        # 近似裁剪,防无限增长
消息 ID毫秒时间戳-序号,单调递增,支持范围查询
$ 与 0$=从现在起的新消息;0=从头(含历史)
阻塞读BLOCK 毫秒,0 表示永久阻塞
与 List 队列相比:Stream 支持多条消费者组、ACK、回溯与多播,是更完整的消息方案。

易错点

  • XREAD 用 $ 读:重启/断线期间写入的消息全漏(方案:记录并复用 last_id 或改用消费者组)
  • 不做 XTRIM:Stream 无限增长撑爆内存

数据来源与参考

  • Redis 官方文档: Streams
  • Redis 官方文档: XADD

相关工具

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