由于 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 zrange 将值排序为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13808658/