【问题标题】:Storing key, value pairs with redis sorted set使用 redis 排序集存储键、值对
【发布时间】:2016-01-21 00:15:40
【问题描述】:

我想将(键,值)对存储在 Redis 排序集中(以及用于排序的双精度)。我目前的选择是对键进行排序集,然后再使用另一个 Redis 哈希值来存储这些对。有没有更好/更规范的方法来解决这个问题?

【问题讨论】:

    标签: hash redis hashtable sortedset


    【解决方案1】:

    这在很大程度上取决于排序集的计划使用。您可能使用的一种模式是复制数据。与 NoSQL 世界一样,规范化并不那么重要。您可以做的是将键与排序集中的值连接起来。因此,您可以存储key-value: score,而不是key: score- 字符可以是您选择的任何分隔符,以便您轻松解析。这为您节省了一次前往key: value 集以获取值的行程。同样,这在很大程度上取决于排序集的计划使用。

    【讨论】:

    • 用于存储最近添加的 N 个对,就像一个队列,我们​​可以在其中更新添加的键。
    • 不确定我是否完全理解用例。但即便如此,我认为您的原始方法没有什么特别的问题。值得一提的是,如果您将同一条数据写入 2 个位置,您可能希望将 2 个写入捆绑到一个 Redis 事务中。这样要么两个写入都成功,要么都失败——你不会得到不一致的数据。