gpt4 book ai didi

Redis:二级索引过期

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

我对 Redis 中二级索引过期的最佳实践很好奇。

例如,假设我的对象 ID 的位置仅在过期前 5 秒内有效。我有:

objectID -> hash of object info

我将这些条目设置为在 5 秒后自动过期。

我还想通过邮政编码查找对象,所以我有另一个映射:

zipCode -> set or list of objectID

我知道无法自动使集合中的元素过期,但我想在它们过期时自动从该邮政编码映射中删除 objectID。

执行此操作的标准做法是什么?如果在到期时触发了一个事件,我可以找到相关的邮政编码映射并删除 objectID,但不确定是否存在(我将使用 Go)。

最佳答案

If there were an event fired upon expiration I could find the associated zip code mapping and remove the objectID, but not sure there is

是的,有过期通知,检查this举个例子。

您可以让客户订阅 expiration event ,并从 zipCode 集合或列表中删除项目。

但是,这个解决方案有两个问题:

  1. 通知不可靠。如果客户端与 Redis 断开连接,或者只是崩溃,客户端将错过一些通知。为了使其更可靠,您可以让多个客户端收听通知。如果一个客户端崩溃,其他客户端仍然可以从 zipCode 中删除项目。
  2. 它不是原子的。在 key 过期和从 zipCode 中删除项目之间有一个时间窗口。

如果您对这 2 个问题没问题,可以尝试此解决方案。

关于Redis:二级索引过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52120041/

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