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
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"