最近,我正在使用redis SortedSet为每个用户实现游戏等级,但是我遇到了一个问题:
zadd game_rank 55 6435
zadd game_rank 55 6088561
zadd game_rank 55 608825
zrange game_rank 0 -1
结果是:
"60882561"
"608852"
"6435"
我想知道在相同分数中是否可以按数字顺序获取值:
"6435"
"608852"
"60882561"
当已排序集合的成员具有相同分数时,将按字典顺序对其进行排序。没有直接的方法可以使它们以不同的顺序排列,但您可以轻松地在客户端进行排序。或者,您可以编写一个简短的Lua脚本,在服务器上为您完成此任务。
您可以采用一种有点怪异的方式来摆脱想要的东西,而无需采用上述方法。根据您提供的示例,并假设rank和user
id都是整数,则可以使用将两者结合在一起的得分,如下所示:
zadd game_rank 550006435 6435
zadd game_rank 556088561 6088561
zadd game_rank 550608825 608825
这将使您可以进行范围调整, 并且 可以对每个等级进行“数字”排序(即,使用zrangebyscore game_rank 550000000 559999999
)。
问题内容: 我在mysql排序中寻找一些调整,我通常从表中选择记录,然后按Name(varchar)ASC排序记录, 但编号始终是第一位的 这是我的问题的一些示例( 注意。mysql首先用0-9排序记录 ) 我想要的是字母顺序,然后是数字 所需的输出 问题答案: 使用以下子句:
问题内容: 我想就这个小问题得到您的帮助。 我想根据 代码 值 而不是字母顺序 对数组 进行排序。 ( 我用粗体字指定了该名称,但最终还是被标记出来了,人们甚至都不在乎阅读该问题 ) 例如,我想有所有 绿色的 对象,那么所有的 蓝色 的人,然后将所有的 红色 的。最好的方法是什么? 使用 sort 函数可以做到这一点吗?在这种情况下会是什么情况? 问题答案: 您可以为所需订单取一个对象。 对于未知
每个人如何检查两个堆栈是否具有相同的值? 例如,在stack1中我有[1,3,4,5],在stack2中我有[4,3,1,5],因此堆栈具有相同的值,并且Method需要返回true。 此外,堆栈必须(最终)与给定的堆栈相同(具有原始值和相同的顺序)。 我已经开始做了,但不幸的是,效果不好: 提前谢谢。
如何检查两个数组(循环)是否具有相同顺序的相同元素。例如,让我们以数组[1,2,3,4]为例。 对于[2,3,4,1]、[3,4,1,2]、[4,1,2,3],测试应返回true,但对于[1,3,2,4]、[1,4,2,3]或[1,2,3,5]则不返回true。 我最初的方法是找到第一个匹配项——每个数组中一个相等的元素——并将这两个元素视为各自数组的初始元素,我逐个比较了数组的其余元素。 有没有
问题内容: myArray = [Step 6, Step 12, Step 5, Step 14, Step 4, Step 11, Step 16, Step 9, Step 3, Step 13, Step 8, Step 2, Step 10, Step 7, Step 1, Step 15] 如何以这种方式在上面对这个数组排序? 我很快使用了此功能,但它是按这种方式排序的 问题答案: 另
问题内容: 我有如下代码: 效果很好,但似乎是以相反的字母顺序列出文件。有没有一种快速的方法可以告诉您按字母顺序列出文件? 问题答案: 带有或不带有过滤器的方法不能保证任何顺序。 但是,它确实返回一个数组,您可以使用对其进行排序。 这是可行的,因为是一个可比较的类,默认情况下按字典顺序对路径名进行排序。如果要对它们进行不同的排序,则可以定义自己的比较器。 如果您更喜欢使用流: 下面是一种更现代的方