Redis学習ノート(8)ソートSORTおよびパラメータ詳細

13255 ワード

1.ソートSORT
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]
  • SORTパラメータ[ASC|DESC]パラメータ:ASCは小さいときから大きいときまで、デフォルトと同じです.DESCは大きいものから小さいものまで並べ替えられています.
  • 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性能最適化
  • SORTコマンドの時間複雑度はO(n+mlogm)であり,nはソートされたリスト(集合または整列集合)中の要素の個数,mは返される要素の個数を表す.nが比較的大きい場合、SORTコマンドのパフォーマンスは比較的低く、ソート前にnの長さのコンテナ(整列集合コンテナサイズm)が作成され、ソートされる要素が格納されます.
    SORTコマンドの使用上の注意事項:
    ソート対象キーの要素数をできるだけ少なくする(nを小さくする)LIMITパラメータ値を使用して必要なデータを取得する(mを小さくする)ソートするデータ量が大きい場合は、できるだけSTOREパラメータを使用して結果をキャッシュします.