Redis学習ノート(8)ソートSORTおよびパラメータ詳細
13255 ワード
1.ソートSORT
SORTコマンドは、リスト・タイプ、コレクション・タイプ、および秩序化されたコレクション・タイプ・キーをソートし、リレーショナル・データベースの接続クエリーと同様のタスクを実行できます.SORTはkeyのlist、setまたはsorted setの要素を返します.デフォルトでは、数値タイプでソートされ、2つの要素の2つの精度浮動小数点数タイプ値で比較されます. SORTパラメータ[ASC|DESC]パラメータ:ASCは小さいときから大きいときまで、デフォルトと同じです.DESCは大きいものから小さいものまで並べ替えられています.
[ALPHA]パラメータ:アルファベットASCIIコードサイズでソートすることを指定します.
[LIMIT offset count]パラメータ:offsetオフセット、countは数
[BY pattern]パラメータ:構文はBY+参照キーであり、参照キーは文字列タイプキーまたはハッシュタイプキーのフィールドであってもよい.BYパラメータが指定されている場合、SORTコマンドは、エレメント自体の値に基づいてソートするのではなく、各エレメントに対して参照キーの最初の"*"をエレメントの値で置き換えて値を取得し、その値をエレメントソートします.参照キーとして文字列タイプキーを使用するには、次の手順に従います. SORT性能最適化 SORTコマンドの時間複雑度はO(n+mlogm)であり,nはソートされたリスト(集合または整列集合)中の要素の個数,mは返される要素の個数を表す.nが比較的大きい場合、SORTコマンドのパフォーマンスは比較的低く、ソート前にnの長さのコンテナ(整列集合コンテナサイズm)が作成され、ソートされる要素が格納されます.
SORTコマンドの使用上の注意事項:
ソート対象キーの要素数をできるだけ少なくする(nを小さくする)LIMITパラメータ値を使用して必要なデータを取得する(mを小さくする)ソートするデータ量が大きい場合は、できるだけSTOREパラメータを使用して結果をキャッシュします.
SORTコマンドは、リスト・タイプ、コレクション・タイプ、および秩序化されたコレクション・タイプ・キーをソートし、リレーショナル・データベースの接続クエリーと同様のタスクを実行できます.SORTはkeyのlist、setまたはsorted setの要素を返します.デフォルトでは、数値タイプでソートされ、2つの要素の2つの精度浮動小数点数タイプ値で比較されます.
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]
127.0.0.1:6379> LPUSH testSort 1 -2 9 3 5
(integer) 5
127.0.0.1:6379> SORT testSort
1) "-2"
2) "1"
3) "3"
4) "5"
5) "9"
127.0.0.1:6379> SORT testSort ASC
1) "-2"
2) "1"
3) "3"
4) "5"
5) "9"
127.0.0.1:6379> SORT testSort DESC
1) "9"
2) "5"
3) "3"
4) "1"
5) "-2"
[ALPHA]パラメータ:アルファベットASCIIコードサイズでソートすることを指定します.
27.0.0.1:6379> LPUSH testSort2 hello world bye test sort home
(integer) 6
127.0.0.1:6379> SORT testSort2
(error) ERR One or more scores can't be converted into double
127.0.0.1:6379> SORT testSort2 ALPHA
1) "bye"
2) "hello"
3) "home"
4) "sort"
5) "test"
6) "world"
127.0.0.1:6379> SORT testSort2 ALPHA DESC
1) "world"
2) "test"
3) "sort"
4) "home"
5) "hello"
6) "bye"
[LIMIT offset count]パラメータ:offsetオフセット、countは数
127.0.0.1:6379> SORT testSort LIMIT 0 3
1) "-2"
2) "1"
3) "3"
127.0.0.1:6379> SORT testSort LIMIT 0 1 DESC
1) "9"
[BY pattern]パラメータ:構文はBY+参照キーであり、参照キーは文字列タイプキーまたはハッシュタイプキーのフィールドであってもよい.BYパラメータが指定されている場合、SORTコマンドは、エレメント自体の値に基づいてソートするのではなく、各エレメントに対して参照キーの最初の"*"をエレメントの値で置き換えて値を取得し、その値をエレメントソートします.参照キーとして文字列タイプキーを使用するには、次の手順に従います.
127.0.0.1:6379> LPUSH user 1
(integer) 1
127.0.0.1:6379> SET weight1 80
OK
127.0.0.1:6379> LPUSH user 2
(integer) 2
127.0.0.1:6379> SET weight2 88
OK
127.0.0.1:6379> LPUSH user 3
(integer) 3
127.0.0.1:6379> SET weight3 77
OK
127.0.0.1:6379> LPUSH user 4
(integer) 4
127.0.0.1:6379> SET weight4 79
OK
127.0.0.1:6379> SORT user
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> SORT user BY weight*
1) "3"
2) "4"
3) "1"
4) "2"
SORTコマンドの使用上の注意事項:
ソート対象キーの要素数をできるだけ少なくする(nを小さくする)LIMITパラメータ値を使用して必要なデータを取得する(mを小さくする)ソートするデータ量が大きい場合は、できるだけSTOREパラメータを使用して結果をキャッシュします.