Redis XACK 命令用于从流的消费者组的待处理条目列表(简称 PEL)中删除一条或多条消息。
当一条消息交付到某个消费者时,它将被存储在 PEL 中等待处理,这通常出现在作为调用 XREADGROUP 命令的副作用,或者一个消费者通过调用 XCLAIM 命令接管消息的时候。待处理消息被交付到某些消费者,但是服务器尚不确定它是否至少被处理了一次。因此对新调用 XREADGROUP 来获取消费者的消息历史记录(比如用 0 作为 ID)将返回此类消息。类似地,待处理的消息将由检查 PEL 的 XPENDING 命令列出。
一旦消费者成功地处理完一条消息,它应该调用 XACK,这样这个消息就不会被再次处理,且作为一个副作用,关于此消息的 PEL 条目也会被清除,从 Redis 服务器释放内存。
命令格式
XACK key group ID [ID ...]
可用版本:>=5.0.0
时间复杂度:针对每个消息的处理的时间复杂度为 O(1)
命令返回值
该命令返回成功确认的消息数。某些消息 ID 可能不再是 PEL 的一部分(例如因为它们已经被确认), 而且 XACK 不会把它们算到成功确认的数量中。
示例
redis> XACK mystream mygroup 1526569495631-0
ERR Unknown or disabled command 'XACK'
redis>