SORT
コマンドを使用できます。
これらのインデックスをSET
に格納し、各インデックスに対応するスコア/重みを格納し、それによってソートします。スコアキーはハッシュにすることができ、多くの異なるスコアセットを持つことができます。
例は次のとおりです。 3つのパラメータ、挿入時間、実行に要する時間、および優先度を指定したリストです。
127.0.0.1:6379> SADD todos 1 2 3
127.0.0.1:6379> HMSET todos:1 insertionTime 1 executionTime 10 priority 5
127.0.0.1:6379> HMSET todos:2 insertionTime 2 executionTime 25 priority 1
127.0.0.1:6379> HMSET todos:3 insertionTime 5 executionTime 4 priority 7
各1によってソートされたリストを取得するには:あなたもこのハッシュまたは同じRedisのDBに他のキーでタスク自身(またはその他のデータ)を保存する場合
127.0.0.1:6379> SORT todos by todos:*->insertionTime
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SORT todos by todos:*->executionTime
1) "3"
2) "1"
3) "2"
127.0.0.1:6379> SORT todos by todos:*->priority
1) "2"
2) "1"
3) "3"
を、あなたはあなたが複数のキーにアクセスしているとして、SORTコマンドはRedisのクラスタでは動作しないこと
127.0.0.1:6379> HSET todos:1 task "do something"
127.0.0.1:6379> HSET todos:2 task "do something else"
127.0.0.1:6379> HSET todos:3 task "do this other thing"
127.0.0.1:6379> SORT todos by todos:*->priority get todos:*->task
1) "do something else"
2) "do something"
3) "do this other thing"
注:オプションのGET
引数と同じ単一の呼び出しでそれを得ることができます。そして、このコマンドの時間の複雑さは非常に高くなる可能性があります。特に、使用法や設定されたサイズが拡大する場合は、慎重に使用してください。