XACK

语法
XACK key group id [id ...]
可用版本
Redis Open Source 5.0.0
时间复杂度
对于每个处理的消息 ID,时间复杂度为 O(1)。
ACL 类别
@write @stream @fast

XACK 命令从流消费者组的 *待处理条目列表 (Pending Entries List, PEL)* 中移除一个或多个消息。当消息被传递给某个消费者(通常是调用 XREADGROUP 的副作用),或者当消费者通过调用 XCLAIM 获得消息所有权时,该消息就会处于待处理状态并存储在 PEL 中。待处理消息已传递给某个消费者,但服务器尚不确定它是否已被至少处理过一次。因此,如果调用 XREADGROUP 来获取某个消费者的消息历史(例如使用 ID 0),将返回此类消息。同样,通过检查 PEL 的 XPENDING 命令也会列出待处理消息。

一旦消费者*成功*处理了消息,就应该调用 XACK,以便该消息不再被重复处理;作为副作用,该消息在 PEL 中的条目也会被清除,释放 Redis 服务器的内存。

示例

redis> XACK mystream mygroup 1526569495631-0
(integer) 1

RESP2/RESP3 回复

整数回复:该命令返回成功确认的消息数量。某些消息 ID 可能不再属于 PEL(例如因为它们已经被确认过),并且 XACK 不会将它们计为成功确认。
评价本页
返回顶部 ↑