由于zrange“词汇顺序用于具有相等分数的元素”,我该如何解决这个问题?

例如:

zadd s 0 1
zadd s 0 2
zadd s 0 10
zadd s 0 3

zrange s 0 4
1) 1
2) 10
3) 2
4) 3

我如何使它像这样排序(虽然经常兑现分数):
1) 1
2) 2
3) 3
4) 10

最佳答案

您不能更改字典顺序。

但是,您可以存储其字典顺序与数字顺序匹配的值。例如,而不是存储:

1
2
12
15
122
321

您可以存储:
A1
A2
B12
B15
C122
C321

第一个字母只是一个代码,用于指示数值的位数(A = 1,B = 2等),因此数字顺序和字典顺序相同。客户端应用程序可以在存储/检索时间轻松添加/删除此前缀。
 zadd s 0 A1
 zadd s 0 A2
 zadd s 0 B10
 zadd s 0 A3

 zrange s 0 4
 1) "A1"
 2) "A2"
 3) "A3"
 4) "B10"

关于redis - Redis Zrange排序值作为整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13808658/

10-12 17:03