一、命令介绍
·消息写入与读取
·XADD:向流末尾追加消息并返回唯一消息 ID(支持自动生成 * 或显式指定)。
·XREAD:从一个或多个流中读取消息,支持从指定 ID 或流头部/尾部开始。
·XRANGE / XREVRANGE:按 ID 范围顺序/逆序检索消息。
·XLEN:返回流中的消息数量。
·消费组管理(多消费者协作)
·XGROUP CREATE / XGROUP DESTROY / XGROUP SETID / XGROUP CREATECONSUMER:创建、销毁消费组,设置或重置消费进度,注册消费者。
·XREADGROUP:消费组内消费者读取分配给自己的待处理消息。
·XACK:确认消息已处理,从待处理列表中移除。
·XPENDING:查看消费组中待处理(未确认)消息的详细信息。
·XCLAIM / XAUTOCLAIM(Redis 6.2+):将超时未确认的消息转移给其他消费者以实现故障转移,XAUTOCLAIM 支持自动扫描并认领。
·消息与流生命周期管理
·XDEL:按消息 ID 删除指定消息。
·XTRIM:按条件裁剪流长度(MAXLEN / MINID),支持 ~ 近似修剪以降低性能开销。
·元信息查询
XINFO:查看流(GROUPS / CONSUMERS / STREAM)或消费组的详细元信息。
更多信息请参见 Valkey 产品文档:Stream 命令组。
二、命令支持概览
·基础命令:xinfo、xadd、xtrim、xdel、xrange、xrevrange、xlen、xread、xgroup、xreadgroup、xack、xclaim、xpending,仅 Redis 5.0、6.2、7.0 版本及 Valkey 8.0、9.0 的标准架构与集群架构支持。
·xautoclaim 命令:仅 Redis 6.2、7.0 版本及 Valkey 8.0、9.0 版本支持。
·Redis 4.0 及 2.8 版本:不支持 Stream 族全部命令。
·跨 Slot 限制:集群架构下,xread、xreadgroup 不支持跨 Slot 操作。
三、命令兼容性矩阵
Stream 族命令在各版本与架构下的支持情况如下表所示(✓ 表示支持,✗ 表示不支持,— 表示该命令不存在跨 Slot 访问场景)。
| 命令 | Valkey 9.0集群架构 | Valkey 9.0集群架构 | Redis 7.0/Valkey 8.0 标准架构 | Redis 7.0/Valkey 8.0集群架构 | Redis 6.2标准架构 | Redis 6.2集群架构 | Redis 5.0标准架构 | Redis 5.0集群架构 | Redis 4.0标准架构 | Redis 4.0集群架构 | Redis 2.8标准架构 | 集群架构跨 Slot 支持 |
| xinfo | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | — |
| xadd | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | — |
| xtrim | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | — |
| xdel | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | — |
| xrange | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | — |
| xrevrange | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | — |
| xlen | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | — |
| xread | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ |
| xgroup | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | — |
| xreadgroup | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ |
| xack | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | — |
| xclaim | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | — |
| xpending | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | — |
| xautoclaim | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | — |