Caching
 

キャッシング - 並べ替えの研究ノートには、redis

タイプを理解する上でのすべてのredis後、sortコマンドは、redisに導入されました。 Redisサポート]ボックスの一覧で、設定し、要素のソートセットを並べ替える。| [アルファ] [ストアdstkey]をソートキー[によるパターン] [LIMITの開始カウント]は、[DESCをASCの] [パターンのGET]:並べ替えコマンドは、ソートの完全なコマンド形式は次のとおりです
gbvy[W
コマンドオプションの様々なことをしよう
(1)キーを並べ替える
これは、オプションは、単にコレクション自体を返すの要素を結果をソートすることですが、最も単純なケースです。次の例では、与える
redis> lpush ml 12
(integer) 1
redis> lpush ml 11
(integer) 2
redis> lpush ml 23
(integer) 3
redis> lpush ml 13
(integer) 4
redis> sort ml
1. "11"
2. "12"
3. "13"
4. "23"
(2)[ASC|DESC] [ALPHA]
デフォルトのソートが大きい、もちろん、また、行ごとに逆の順序で文字、または注文することができる小型からランクされている(昇順)ソートする。。ここではアルファベット順の例です。
redis> lpush mylist baidu
(integer) 1
redis> lpush mylist hello
(integer) 2
redis> lpush mylist xhan
(integer) 3
redis> lpush mylist soso
(integer) 4
redis> sort mylist
1. "soso"
2. "xhan"
3. "hello"
4. "baidu"
redis> sort mylist alpha
1. "baidu"
2. "hello"
3. "soso"
4. "xhan"
redis> sort mylist desc alpha
1. "xhan"
2. "soso"
3. "hello"
4. "baidu"




。次の例では、をクリックし、例の最初のセットを使用してmlのプレゼンテーションを行う:
redis> set name11 nihao
OK
redis> set name12 wo
OK
redis> set name13 shi
OK
redis> set name23 lala
OK
redis> sort ml by name*
1. "13"
2. "23"
3. "11"
4. "12"
*を表しますmlの要素の値なので、この種は、これらの4つの主要な種類のname12 name13 name23 name23対応する値では、もちろん、ミリリットルの要素のソートセットが返されました
(4)[GET pattern]
上記の例は、要素のコレクションmlに返されます。。また、オプションは、対応する値の新しいキーのパターンを指定するには、取得することができます。組み合わせの例を参照してください
redis> sort ml by name* get name* alpha
1. "lala"
2. "nihao"
3. "shi"
4. "wo"
戻り値ではなくname12 name13 name23 name23対応する値が、ミリリットルの要素ではない。もちろん、並べ替えがによるとname12 name13 name23 name23アルファベット順の値に基づいています。。を参照してください例(#はシンボル、mlの元のセットに特別な参照)
redis> sort ml by name* get name* get # alpha
1. "lala"
2. "23"
3. "nihao"
4. "11"
5. "shi"
6. "13"
7. "wo"
8. "12"




redis> hset user1 name hanjie
(integer) 1
redis> hset user11 name hanjie
(integer) 1
redis> hset user12 name 86
(integer) 1
redis> hset user13 name lxl
(integer) 1
redis> sort ml get user*->name
1. "hanjie"
2. "86"
3. "lxl"
4. (nil)

(5) [LIMIT start count]
上記の例を返すすべての結果は、。制限オプションは、返される結果の数を制限する。例
redis> sort ml get name* limit 1 2
1. "wo"
2. "shi"
制限オプションは、最初から番目の要素は、2つを取得することを意味し、次の目的は、0から開始することです開始
(6)[STORE dstkey]
あなたは、CPUのオーバーヘッドの数を減らすためにキャッシュされた結果をソートし、ソートする固定定期的なパターンを設定する場合。ストアオプションを使用すると、指定されたソートキーにコンテンツを保存する。保存タイプがリストです。
redis> sort ml get name* limit 1 2 store cl
(integer) 2
redis> type cl
list
redis> lrange cl 0 -1
1. "wo"
2. "shi"
並べ替え我々はCLで保存されますこの例の結果は、
。我々はredisサーバーよりもしている場合は、別のキーが別のサーバー上に存在する可能性があります。。。この問題を自分のブログのソリューションに記載redis著者は、キータグには、ソートする必要があるでしょうから、鍵は同じサーバーに配置されている。一般的にハッシュを行うには、クライアント側の方法はされているサーバー上の特定のキーのために存在するかを決定。我々は、ハッシュの唯一の主要な部分ができます。我々のクライアントの主要な場合に、たとえば、彼らは[]が含まれている場合。次に、[]で唯一のキーがハッシュの内容が含まれています。我々は、関連する4つのキーに名前を付けますので、23 [名前] 12 [名前] 13 [名前] 23 [名前]という名前なので、クライアントプログラムは、同じサーバー上でそれらをすべて置く。達成jredisを知らなかった。
より深刻な問題もあります。。redisシングルスレッドので、長い並べ替え操作は、他のクライアントの要求をブロックするように。。。タイムズ可能結果キャッシュの順序。他のインデックスによってコレクションにアクセスするために、ニーズのソートセットを使用しているプログラムです。。
転送元: