3

我正在尝试实现一个带有排名的排行榜,数据在 Redis 中存储为排序集。我试图弄清楚的部分是如何实现密集(即“ 1-2-2-3 ”)排名,例如,用户的排名是这样的:

Score   User    Rank
---------------------
22      user1   1
21      user2   2
21      user3   2
21      user4   2
20      user5   3
20      user6   3

这个答案:https ://stackoverflow.com/a/14944280/2177几乎是我需要的,但它相当于“ 1-2-2-4 ”排名,这对我的应用程序来说是不可取的,例如:

1-2-2-4 Ranking 
Score   User    Rank
---------------------
22     user1    1
21     user2    2
21     user3    2
21     user4    2
20     user5    5
20     user6    5

这似乎是一个相当常见的用例。有没有人在 Redis 中成功实现过这样的事情,如果是,如何实现?

4

1 回答 1

2

我最终做的是添加第二个仅包含唯一分数的排序集,然后我可以查询它们在密集排名中的各自位置。

于 2013-10-09T22:07:41.817 回答