このようにRedisは機能しません。ドキュメントによると、並べ替えは、外部キーによる値ではなく外部キーによるソートに機能します。より正確には、Redisがsort list by weights_*
を実行すると、このパターンをマスキングするすべてのキーがチェックされ、リスト内の値と比較され、ソートされた結果が返されます。
例:あなたはソートしようとするとソートがweight_ *パターンに外部キーに適用されますあなたが見ることができるように今
lpush list apple melon strawberry banana
MSET weights_apple 10 weights_grape 20 weights_banana 30 weights_strawberry 40 weights_melon 50
、結果は
127.0.0.1:6379> sort list by weight_*
1) "apple"
2) "banana"
3) "strawberry"
4) "melon"
になります。単一のエンティティ(ハッシュまたはソートされたセット)内ではありません
ハッシュマップまたはソート済みセットで同じことができますが、特定のパターンに一致するキーとそのキー内の値で比較が行われます。 たとえば、ハッシュマップまたはソートされたセットで同じ結果を得るには、このような処理が必要です。
127.0.0.1:6379> lpush list apple melon strawberry banana
(integer) 4
127.0.0.1:6379> hset weight_apple value 10
(integer) 1
127.0.0.1:6379> hset weight_grape value 20
(integer) 1
127.0.0.1:6379> hset weight_banana value 30
(integer) 1
127.0.0.1:6379> hset weight_strawberry value 40
(integer) 1
127.0.0.1:6379> hset weight_melon value 50
(integer) 1
127.0.0.1:6379> sort list by weights_*->weight
1) "apple"
2) "banana"
3) "melon"
4) "strawberry"
あなたは、単一のハッシュとゲーマーのIDを含むセット内のすべての情報のゲーマーのを保存するようなデータ構造を持っている場合、これはうまく動作します。今度はスコアでソートしたいと思っています。
getコマンドを使用して、関連する他の値を取得することもできます。