请教一个 redis SortedSet 排序问题

2017-04-17 11:33:30 +08:00
 imherer

最近在用 redis 的 SortedSet 做积分排行榜,降序排列。 SortedSet 默认同样的积分后达到的排名靠前(降序) 即假如我现在有个 key 为rank的里面有如下 member:

m1:10
m2:20

按降序排的话应该是:m2>m1 假如这时候又来了 m3 ,积分也是 20 分,按照 SortedSet 的排序应该是:m3>m2>m1 但我们很多时候需求是 同样的积分谁先达到谁排名靠前,即想要的结果应该是:m2>m3>m1

各位有这样的需求吗?都是怎么处理的呢?

3509 次点击
所在节点    程序员
22 条回复
zjuhwc
2017-04-18 08:16:58 +08:00
分数存成:分数-时间戳 /10 的 9 次方
晚到达的分数会小一点,要拿到准确分数向上取整就行,我们以前就这么干的
nextzeus
2018-08-16 17:25:56 +08:00
搞来搞去 还不如用数据库去二维排序最准确

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/355350

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX