gpt4 book ai didi

redis - 如何防止Redis流内存无限增加?

转载 作者:行者123 更新时间:2023-12-03 06:42:40 37 4
gpt4 key购买 nike

我刚刚意识到当只有一个消费者组时 XACK 不会自动删除消息。

我以为当所有消费者组确认相同的消息时,该消息将被 Redis-server 删除,但似乎并非如此。

因此,Redis 流内存会无限增加,因为不会删除任何消息。

也许防止这种情况的唯一方法是手动 XDEL 消息?但是我怎么知道所有的消费者组都确认了这个消息呢?

需要一些帮助,谢谢!

最佳答案

Redis 流主要是一种只能追加的数据结构。可以使用 XDEL 删除条目命令,但这不一定释放条目使用的内存:

> XDEL mystream 1538561700640-0
(integer) 1
您也可以 cap使用 MAXLEN 具有任意阈值的流选项 XADD 或使用 XTRIM 命令明确:
> XADD mystream MAXLEN 1000 * value 1
1526654998691-0
...
> XLEN mystream
(integer) 1000

But how can I know all consumer groups have acked the message?


您可以使用 XPENDING 检查每个消费者组的待处理消息列表。命令:
> XPENDING mystream mygroup
1) (integer) 1
2) 1526984818136-0
3) 1526984818136-0
4) 1) 1) "consumer-1"
2) "1"

关于redis - 如何防止Redis流内存无限增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60450248/

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