XACK:将消息标记为“已处理”
通过执行XACK命令,用户可以将消费者组中的指定消息标记为“已处理”。被标记的消息将从当前消费者的待处理消息队列中移除,而之后执行的XREADGROUP命令也不会再读取这些消息:
XACK stream group id [id id ...]
XACK 命令在执行之后将返回被标记的消息数量作为结果。
举个例子,假设现在消费者worker1有一条ID为1534498374797-0的消息待处理:
redis> XPENDING cgs all-message - + 1 worker1
1) 1) 1534498374797-0
2) "worker1"
3) (integer) 19027
4) (integer) 1
如果执行以下命令,那么该消息将被标记为“已处理”:
redis> XACK cgs all-message 1534498374797-0
(integer) 1 -- 有一条消息被标记了
被标记的这条消息将从消费者worker1的待处理消息队列中消失:
redis> XPENDING cgs all-message - + 1 worker1
(empty list or set)