- 用法
-
XACK key group ID [ ID ... ]
- 复杂度
- 每个消息 ID 的处理复杂度为 O(1)。
- 起始版本
- 5.0.0
- ACL 类别
- @stream, @write, @fast
XACK
命令从流消费者组的待处理条目列表(PEL)中移除一个或多个消息。当消息被发送给某个消费者时(通常是调用 XREADGROUP
的副作用),或者当消费者通过调用 XCLAIM
取得消息所有权时,该消息就会处于待处理状态,并存储在 PEL 中。待处理消息已发送给某个消费者,但服务器尚不确定它是否至少被处理过一次。因此,再次调用 XREADGROUP
来获取消费者消息历史(例如使用 ID 为 0)时,将返回此类消息。类似地,待处理消息也会被 XPENDING
命令列出,该命令用于检查 PEL。
一旦消费者成功处理了消息,它应该调用 XACK
,这样该消息就不会被再次处理,并且作为副作用,关于此消息的 PEL 条目也会被清除,从而释放 Valkey 服务器的内存。
示例
127.0.0.1:6379> XACK mystream mygroup 1526569495631-0
(integer) 1
RESP2/RESP3 回复
整数回复:该命令返回成功确认的消息数量。某些消息 ID 可能已不再是 PEL 的一部分(例如,因为它们已被确认),XACK 不会将它们计入成功确认的消息。