腾讯云分布式缓存数据库 stream 族

Stream 族命令用于持久化消息流(append-only log)的写入、读取与消费管理,是 Pub/Sub 的有状态增强版本。该族命令适用于消息队列、事件溯源(Event Sourcing)、日志聚合等需要消息持久化与消费确认的场景。其核心命令按功能可分为以下四类。

相关产品
腾讯云分布式缓存数据库(兼容 Redis) 产品页,含版本规格、价格与购买入口。

一、命令介绍

·消息写入与读取

·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 ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✗ ✗ ✗ —
赞 (0)
上一篇 4天前
下一篇 4天前