我已经用c_创建了一个简单的排行榜应用程序。不过,我注意到一个拉和排序得分的问题。假设我在一个排序集(95,12,60,50,66)上运行zrevrange,那么它将以95,66,60,50,12的顺序返回。太好了,这正是我想要的。
但是,如果我将100添加到同一个顺序集,则zrevrange返回95、66、60、50、12、100。它将100放在集合的末尾,即使它比其他数字大。在sum挖掘之后,我发现zrevrange返回了一个交错的字节数组。据我所知,它是基于数字中的第一个数字,即锯齿数组中的第一个数字。这是一个例子。
如你所见,它看起来是基于订购的。我应该用不同于Zrevrange的东西吗?

最佳答案

有序集使用分数进行排序。如果成员的得分相同,则按词汇顺序排列。
看起来你是用会员来存储排行榜的分数,我打赌你把所有会员的分数都设置为相同的值。除了产生意外的,但正确的,词典排序,这也意味着你将无法存储相同的分数不止一次。

关于redis - Redis zRevRange排行榜,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24563612/

10-16 12:36