Redisデータベースシリーズの3つ

5246 ワード

目次
 
sort
flushdb
flushall
select
swapdb

sort


1.構文sort key[by pattern][limit offset count][get pattern[get pattern...]][asc|desc][alpha][store destination]2.指定したリスト、コレクション、順序付けされたコレクションkey内のソートされた要素を返したり保存したりします.ソートの既定値は数値をオブジェクトとし、値は二重精度浮動小数点数として解釈され、比較されます.3.一般的なsort用法で最も簡単なsort使用方法はsort keyとsort key desc.sort keyがキー値を小さいから大きいまで並べ替えた結果を返すことである.sort key descは、キー値が大きいから小さいまで並んだ結果を返します.3.1)例:
lpush sunny 98 85 63
sort sunny
sort sunny desc

4.alpha修飾子を使用して文字列をソートsortコマンドのデフォルトのソート対象が数値であるため、文字列をソートする必要がある場合、sortコマンドの後にalpha修飾子を明示的に追加する必要がある:4.1)例:
lpush web "www.sisophon.cn" "www.baidu.com" "www.google.com"
sort web   //        
ERR One or more scores can't be converted into double
sort web alpha //      

システムにLC_が正しく設定されている場合LOCALの環境変数であれば、redisはutf-8符号化を認識できる.5.limit修飾子を使用して、戻り結果のソート後に戻る要素の数を制限するには、limit修飾子を使用します.修飾子はoffsetとcountの2つのパラメータを受け入れます.offsetはスキップする要素の数を指定します.countはoffset個の指定された要素をスキップした後、何個のオブジェクト5.1)の例を返すかを指定します.
rpush rank 1 3 5 7 9
rpush rank  2 4 6 8 10
sort rank limit 0 5
sort rank limit 0 5 desc

6.外部キーを使用してソートするには、デフォルトのキー値を直接比較する代わりに、外部キーのデータを重みとして使用します.6.1)使用データ:
lpush uid 1 2 3 4
mset user_name_1 admin  user_name_2 jack user_name_3 peter user_name_4 mary
mset user_level_1 9999  user_level_2 10 user_level_3 25 user_level_4 70

6.2)byオプションのデフォルトでは、sort uidはuidの値で直接ソートされます.sort uidはbyオプションを使用することで、uidを他のキーの要素でソートすることができます.例えばuidキーをuser_に従わせるコードlevel_{uid}のサイズでソートします.
sort uid by user_level_*
1) "2"      # jack , level = 10
2) "3"      # peter, level = 25
3) "4"      # mary, level = 70
4) "1"      # admin, level = 9999

解析:user_level_*は、uidの値を取り出してから、この値で対応するキーを検索するプレースホルダです.uidがソートする場合、プログラムはuidの値1 2 3 4を取り出し、user_を使用します.level_1...user_level_4の値はuidソートの重みとして使用されます.6.3)getオプションgetオプションはgetオプションを使用し、ソートの結果に基づいて対応するキー値を取り出すことができる.たとえば、次のコードはuidをソートしてからキーuser_を取り出します.name_{uid}の値:
sort uid get user_name_*
1) "admin"   #uid=1
2) "jack"     #uid=2
3) "peter"     #uid=3
4) "mary"     #uid=4

6.4)byとgetを組み合わせるbyとgetを組み合わせることで、ソート結果をより直感的に表示することができる.たとえば、以下user_を押します.level_{uid}を使用してuidリストをソートし、対応するuser_を取り出します.name_{uid}の値:
sort uid by user_level_* get user_name_*
1) "jack"       # level = 10
2) "peter"      # level = 25
3) "mary"       # level = 70
4) "admin"      # level = 9999

6.5)複数の外部キーを取得するには、複数のgetオプションを同時に使用して、複数の外部キーの値を取得できます.次のコードはuidでuser_をそれぞれ取得します.level_{uid}とuser_name_{uid}:
sort uid get user_level_* get user_name_*

6.6)外部キーを取得するが、ソートを行わない.存在しないキーをbyオプションにパラメータとして渡すことで、sortにソート操作をスキップさせ、直接結果を返すことができる.
sort uid by not-exists-key

この方法を単独で使用する場合、実用的な用途はありません.ただし、getオプションと組み合わせることで、ソートせずに複数の外部キーを取得することができ、行の統合された取得操作を実行することに相当します.次のコードは、ソートを起こさずにsort、by、getを使用して複数の外部キーを取得する方法です.
SORT uid BY not-exists-key GET # GET user_level_* GET user_name_*

6.7)ハッシュ・テーブルをgetまたはbyのパラメータとして使用することは、文字列キーの他に、ハッシュ・テーブルをgetまたはbyオプションのパラメータとして使用することもできる.たとえば、前述のユーザー情報テーブルでは、ユーザーの名前とレベルを言わずにuser_に保存できます.name_{uid}とuser_level_{uid}2つの文字列キーではなく、nameドメインとlevelドメインを持つハッシュテーブルuser_info_{uid}クラスは、ユーザーの名前とレベル情報を保存します.
HMSET user_info_1 name admin level 9999
HMSET user_info_2 name jack level 10
HMSET user_info_3 name peter level 25
HMSET user_info_4 name mary level 70
lpush uid 1 2 3 4

byおよびgetオプションは、key-fieldのフォーマットでハッシュ・テーブルのドメインの値を取得できます.keyはハッシュ・テーブル・キーを表し、fieldはハッシュ・テーブルのドメインを表します.
sort uid by user_info_*->level
sort uid by user_info_*->level get user_info_*->name

7.ソート結果を保存デフォルトでは、sort操作はソート結果を簡単に返すだけで、保存操作は行われません.sortオプションでkeyパラメータを指定すると、ソート結果を指定したキーに保存できます.指定されたkeyがすでに存在する場合、元の値はソート結果によって上書きされます.
rpush numbers 1 3 5 7 9
rpush numbers 2 4 6 8 10
lrange numbers 0 -1
sort numbers store sorted-numbers
LRANGE sorted-numbers 0 -1

sortコマンドの実行結果を保存し、expireで結果の生存時間を設定することで、sort操作の結果キャッシュを生成できます.これにより、sortオペレーションの頻繁な呼び出しを回避できます.結果セットが期限切れになった場合にのみ、sortオペレーションをもう一度呼び出す必要があります.また、この使い方を正しく実現するには、複数のクライアントが同時にキャッシュ再構築を行わないようにロックする必要があります.8.戻り値はstoreパラメータを使用せず、リスト形式のソート結果を返します.storeパラメータを使用して、ソート結果の要素数を返します.

flushdb


1.構文flushdb 2.現在のデータベースのすべてのkeyを解析します.3.戻り値は常にOK 4を返す.例
dbsize
flushdb
dbsize

flushall


1.構文flushall 2.解析redisサーバ全体のデータをクリアする(すべてのデータベースのすべてのkeyを削除する).戻り値は常にOK 4を返す.例
dbsize
select 1
dbsize
flushall
db size 
select 0
dbsize

select


1.構文select index 2.解析は指定するデータベースに切り替わる、データベースインデックス番号indexは数値で指定され、0を開始インデックス値とし、Redisのデフォルト構成では16個のデータベースがあるため、selectは最大でselect 15が使用できる.デフォルトでは0番データベースが使用されます.3.戻り値OK 4.例
set m "hello"
select 1
get m
set m "world"
get m

swapdb


1.構文swapdb db 1 db 22.指定した2つのデータベースを解析します.はい、2つのデータベースのデータはすぐに交換されます.3.戻り値OK 4.例
#     0 1
swapdb 0 1