gpt4 book ai didi

redis - 计算或列出 redis 流中所有已确认的消息

转载 作者:行者123 更新时间:2023-12-03 17:10:32 25 4
gpt4 key购买 nike

我知道我可以使用 xlen 获得流的总长度或 xinfo stream mystream full.我也明白我可以使用 xpending获取待处理队列的长度,尚未确认的项目。
是否有命令可以告诉我/曾经/曾经的项目的数量或身份 ack 'd? (除了假设 xlen - len(xpending) = len(unackd) ?)

最佳答案

虽然您可以使用 LUA 脚本和 MULTI 完成此操作,但没有内置功能来计算流中的确认/处理消息。
您可以使用 LUA 脚本在同一流中进行计数和 ACK。

ARGS: [my-group, message-id]
Keys: [{my-stream}, {my-stream}::my-group::counter ]

redis.call( 'XACK', KEYS[0], ARGS[0], ARGS[1] )
redis.call('INCR', KEYS[1] )
my-stream是流名称和 my-group是消费者组名称。
您还可以使用 Multi/Exec
MULTI
XACK {my-stream} my-group message-id
INCR {my-stream}::my-group::counter
EXEC
我已经标记了计数器和流名称以避免 Redis 集群中的跨槽错误。为每个消费者组和每个流维护计数器。

关于redis - 计算或列出 redis 流中所有已确认的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64048903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com