我在Redis中有一个排序集,其中包含类似于以下值:
ZADD ranking1 0 Kyle Neath
ZADD ranking1 1 Cameron McEfee
ZADD ranking1 2 Ben Bliekamp
ZADD ranking1 3 Justin Palmer
ZADD ranking2 0 Cameron McEfee
ZADD ranking2 1 Justin Palmer
ZADD ranking2 2 Kyle Neath
ZADD ranking2 3 Ben Bliekamp
... 等等。
有没有办法获取某个人的分数并以列表形式返回它们?例如,调用
Kyle Neath
将返回[0, 2]
。我是否应该对此建模不同以实现相同的目的? 最佳答案
在当前数据布局下,获取列表的唯一方法是每个排名使用一个zscore
。
除了这些排序集之外,每个人的排名中都可以包含一个哈希值。内存使用率不会更高,因为字符串已被重用且哈希值非常便宜。
例如:
HMSET "Kyle Neath" ranking1 0 ranking2 2
HMSET "Cameron McEfee" ranking1 1 ranking2 0
HMSET "Ben Bliekamp" ranking1 2 ranking2 3
HMSET "Justin Palmer" ranking1 3 ranking2 1
并获取列表
HVALS "Kyle Neath"
但是您必须确保应用程序代码中排序集和哈希的一致性。
关于data-structures - 在Redis中相交的排序集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8773361/