Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/redis-command-xack.html

Redis XACK 命令

Redis 流(Streams) Redis 流(Streams)


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>