gpt4 book ai didi

Redis Pub Sub - 只有一个订阅者对过期事件采取行动

转载 作者:可可西里 更新时间:2023-11-01 11:24:50 24 4
gpt4 key购买 nike

我正在我的应用程序中实现 redis Keyspace 通知,该应用程序在我们的生产环境中有 10 个实例。

我的 pubsub 监听 map1 中的过期事件并基于该事件在 map2 中递减。

这在我的本地机器上运行良好。我的问题是,当我使用多个实例部署我的应用程序时,我认为所有实例都会读取过期事件并且所有实例都会递减 key ,而我想限制只有 1 个实例应该递减。

有什么办法可以实现吗?

最佳答案

您的听众将不得不以某种方式协调减量。您可以通过某种锁定来做到这一点,但更简单的方法可能是将版本/时间戳的概念嵌入到此逻辑中。这就是我的想法。

如果您在“map2”中包含时间戳怎么办?过期事件有它自己的时间戳,因此您可以让监听器针对它进行检查和设置(提示:我会使用 Lua 作为 CAS)。这将防止类似竞争的情况和一次性多次递减。

注意:Redis PubSub 非常棒,但请注意,您当前的解决方案无法确保“map2”中的递减,以防消息丢失。在不久的将来,Redis 将提供更适合此类工作的 Stream 数据类型。具体来说,Stream Consumer Groups 功能正是您在此处替换键空间通知所需的 IMO。

关于Redis Pub Sub - 只有一个订阅者对过期事件采取行动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48868570/

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