首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis发布订阅者-只有一个订阅者对过期事件采取行动

Redis发布订阅者-只有一个订阅者对过期事件采取行动
EN

Stack Overflow用户
提问于 2018-02-19 22:45:07
回答 1查看 260关注 0票数 0

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

我的pubsub监听map1中的过期事件,并基于此在map2中进行递减。

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

有什么方法可以做到这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2018-02-20 01:37:43

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

如果你在你的"map2“中包含一个时间戳呢?一个过期的事件有它自己的时间戳,所以你可以让监听器对其进行检查和设置(提示:对于CAS,我会使用Lua )。这将防止类似比赛的条件和多次减少一次进行。

注意: Redis PubSub很棒,但请注意,您当前的解决方案不能确保在消息丢失的情况下“Redis”中的减量。在不久的将来,Redis将提供流数据类型,它更适合于这种类型的工作。具体地说,Stream Consumer Groups的功能正是您在这里需要用来替换键空间通知的地方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48868570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档