【问题标题】:Is there a better data structure to use to index this data in Redis?是否有更好的数据结构可用于在 Redis 中索引这些数据?
【发布时间】:2013-06-20 15:30:31
【问题描述】:

我正在使用 Redis 将一堆“Foos”存储在哈希中:

foo:<id> => {
    name = 'whatever',
    status = 'incomplete|complete|removed',
    user = <user_id>,
    ...
}

我想设置一个索引,以便可以为特定用户拉取具有特定状态的 Foos。我想出的最好的方法是使用这样命名的集合:

foo:user:<user_id>:status:<status> => [ <foo_id>, <foo_id2>, ... ]

但这看起来很笨拙,我必须确保跟踪旧状态并在更改状态时将其从一组中删除,以保持数据一致。我可以在这里使用更聪明的结构吗?

【问题讨论】:

    标签: data-structures redis


    【解决方案1】:

    我认为您考虑存储这些东西的方式很好。您可以随时更改 foo:user:&lt;user_id&gt;:status:&lt;status&gt; 名称,如果您认为它太长,但这个想法是有道理的。我要添加的一件事是您应该创建一个简短的 lua 函数,通过从 foo 获取旧状态,将 foo 的状态更新为新状态,然后更新旧状态集和新状态,为您更新状态' 放。这些操作都是 O(1),所以它不会很昂贵(尤其是因为它的 Lua),并且由于所有内容都将由一个小脚本管理,因此您无需担心每次都在代码中完成所有操作.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多