Redisのは、一般的にコマンドを使用しました
文字列(文字列)、ハッシュ(ハッシュ)、リスト(一覧)、セット(集合)とZSET(ソートセット::順序付きコレクション)など、Redisのは、5つのデータ型をサポートしています
https://gitee.com/nmwork/RedisUtil
1. Redisのデータ型
1.1。リストのタイプ
1.1.1はじめに
Redisのリストには、文字列の単純なリスト、ソート挿入順です。あなたは、最大2つの含有することができる(右側)(左側)のリストの先頭またはリストの一端に要素を追加することができる32 1要素(4,294,967,295以上40億のリストの各要素) -を
で同様のèJAVA のLinkedList
1.1.2コマンド
割り当て構文:
LPUSHキー値1 [値2] // 1つ以上の値が(左から添加)リストの先頭に挿入されます
RPUSHキー値1 [値2] //リスト(右から追加される)1つ以上の値を追加
LPUSHXキー値//値がすでに存在しているリストの先頭に挿入されています。リストには、操作が無効になっていない場合
すでに存在しているリストの末尾にRPUSHXキー値が//値(右端)。リストにない場合は、操作は無効です。
構文の値:
LLENキーは、リストの長さを取得します//
LINDEXキーインデックス//インデックスによって要素のリストを取得します
LRANGEキー、スタートストップが指定された範囲内の要素のリストを取得する//
説明:指定された範囲、STARTとENDで指定されたオフセット範囲内の要素のリストを返します。前記0等リストの最初の要素、第二の要素を示すリストを示し、そして。負の添字は、リスト-1の最後の要素を表すために使用されてもよい-2ように、リストの最後から二番目の要素を表し、。
開始: ページサイズ*(ページ-1)
停止:(ページサイズ*のページ)-1
構文を削除します。
最初の要素LPOPキーを除去し、(左から削除された)のリストを取得します
RPOPキーがリストの最後の要素を取り除き、除去要素の戻り値は、(右から削除します)
BLPOP KEY1 [キー2]タイムアウト
そして、リストは要素のリストでない場合は、タイムアウトになるまでブロックしますか発見が要素をポップするまで待って、リストの最初の要素から抜け出します。
例
Redisの127.0.0.1:6379> BLPOPリスト1 100
指定されたキーLIST1プレゼンスリストが最初のデータ要素を返した、または100秒待ってnilを返している場合、上記の例では、動作は、ブロックされます。
BRPOP KEY1 [キー2]タイムアウト
そして、リストは要素のリストでない場合は、タイムアウトになるまでブロックしますか発見が要素をポップするまで待って、リストの最後の要素から抜け出します。
LTRIMトリム(トリム)のリストについては、スタートキーストップは、それは、削除されます指定されていないの範囲内の要素の範囲内でのみ指定された保持要素のリストを作成しています。
構文を変更します。
LSETキーインデックスの値は、リスト要素のインデックス値で設定されています
前または後の要素のリスト内の要素を挿入する世界値AFTER | BEFORE LINSERTキー
説明:世界の前または後に位置値の中でリストに挿入されたキー値の値。
高度な文法:
RPOPLPUSHソース先
リストの最後の要素を削除し、その要素のリストを追加し、別のものに戻る
の典型的な説明:
の左にあるA1とA2 RPOPLPUSH最後の要素a1をa2と//
RPOPLPUSH A1はA1 //循環リスト、左端に最後の要素
BRPOPLPUSHソース先のタイムアウト
別のリストには、リストからポップアップ要素を値をポップし、それを返し、リストは待機タイムアウトするまでブロック、またはポップアップ要素をこれまでに見つけることができるでしょう要素が表示されない場合。
1.1.3。シナリオ
多くの場合、プロジェクトで使用される:1 、データ削除データの量が2セット、タスクキューを
1、 データ削除データセットの多量
一覧データショーウォッチリスト、ファンリスト、メッセージの評価...ページング、ホットニュース(TOP5)など
あなたはまた、簡単にページング機能を実現するブログシステムをLRANGEを使用することができ、それぞれの作品ボーエンコメントが別のリストに格納することができます。
2、 タスクキュー
(一覧通常のMySQLのようなBY ORDER並べ替えることが必ずしも必要ではないこと、メッセージキューを実装するために使用し、シーケンスを確保することができます)
タスクキューの紹介(生産者と消費者モード):
クライアントのWeb要求によって送信されたコマンドを処理している間、いくつかの操作の実行時間は、我々は内部の作業を実行するためにキューに置かれるように、関連する情報によって、予想より長いかもしれない、と処理のためのキューの後に、ユーザーがすることができます操作を完了するためにいくつかの時間を取ることができるそれらの実装の遅れが、これはタスクキュー(タスクキュー)として知られている練習のタスクを実行するプロセッサに動作します。
RPOPLPUSHソース先
リストの最後の要素を削除し、その要素のリストを追加し、別のものに戻る
の典型的な説明:
一般的なケース:
1:単一プロセスの注文システム、
2:システムのログインユーザー登録SMS
ユーザーが正常にログインした後、
3つのリソース:
(アクセスを許可するログイン後)一覧ページ
実名認証ページ(ログインがアクセスを許可するようにした後)
(ログイン後、だけでなく、実名認証)ページを転送
コードは示しています。
1.2。のタイプを設定します。
1.2.1はじめに
String型セットのRedisのは順不同コレクションです。これは、重複データの収集が表示されないことを意味し、コレクションの唯一のメンバーです。
Redisのは、ハッシュテーブルのコレクションを達成し、その検索の複雑さはO(1)で、削除、追加されます。
2の組におけるメンバーの最大数32 - 1 (4,294,967,295、各セット40万人を格納することができます)。
JAVAのHashtableのコレクションと同様に
ストレージ構造の基礎となるCollectionオブジェクトは、通常の(キーの値が設定され、値がnullである)された特殊な魔法のセット底面とINTSETハッシュテーブルの使用は、2つのデータ構造に保存されている、我々はINTSETアレイを理解することができ、ハッシュテーブルのハッシュテーブルのRedis 。
INTSET内部は実際アレイ(int8_t coententsは[]配列)、および場合、ルックアップのデータが半分に達成時間を見つけることであるので、記憶されたデータは、順序付けされています。
1.2.2コマンド
割り当て構文:
SADD 主要メンバー1 [member2がある] コレクションに1つ以上のメンバーを追加します
構文の値:
SCARDキーは、 コレクションのメンバーの数を取得します
SMEMBERS キーは 、コレクションのすべてのメンバーを返します
SISMEMBERキー部材 要素は設定キー部材(の開発:認証があるかどうかを決定する)のメンバーであるか否かを判断します
SRANDMEMBERキー[回数]は 、乱数の集合または複数を返します。
構文を削除します。
[member2]のセットの1人のまたは複数のメンバーを削除するSREMキーMEMBER1
SPOPキー[回数]は削除され、セット内のランダムな要素を返します。
SMOVEソース送り先メンバー
要素部材は、宛先コレクションセットにソースから移動されます
違いは、構文を設定します。
SDIFF KEY1 [KEY2]は すべての違い(左側)のセットの所定のセットを返します
SDIFFSTORE先KEY1 [KEY2は】セットの所与のセットのためのすべての違いを返し、先に格納されています
交差点の構文:
焼結KEY1 [KEY2] 全て(全データ)の所定の交差点を返すコレクション
SINTERSTORE先KEY1 [KEY2]すべての所与のセットの交差を返し、先に格納されています
そして、構文を設定します。
SUNIONキー1 [KEY2] 指定されたセットとセットのすべてを返します
すべての宛先の集合でSUNIONSTORE先KEY1 [KEY2]及び貯蔵の所与のセットを設定します
1.2.3。シナリオ
しばしば使用される:[計算]交差点に関するデータの2つのセットの間、組合、差分計算のために
1は、そのような共通の懸念、共通の好み、二度の友人や他の機能を達成するのは非常に簡単インチ 上記のすべてのセットに動作させるためには、別のコマンドでは、新しいセットを保存するために、クライアントに結果を返すか、使用することを選択することができます。
2、ユニークな、独立したIPを使用すると、サイトへのすべてのアクセスをカウントすることができます
1.3。順序集合(ソートセット)ZSET
1.3.1はじめに
1、Redisのも、文字列型の要素のコレクションとして収集し、収集を命じ、重複メンバーを許可していません。
ダブルスコアは要素の各タイプに関連付けされることを除い2、。これは、メンバーの合格点のコレクションの大量注文に小さなからRedisのことです。
3、順序集合のメンバーはユニークですが、スコア(点数)は、それを繰り返すことができます。
4、コレクションは、ハッシュテーブルを介して達成されているので、検索の複雑さはO(1)であり、削除、追加します。2の組におけるメンバーの最大数32 - 1 (4,294,967,295、各セット40万人を格納することができます)。
ZSETのRedisのは秩序であると繰り返していません
(Redisの中に、取扱説明書の順序集合をzの先頭に関連付けられているため、多くの場合、我々は、コレクションがzsetsと呼ばれている注文のRedisます)
1.3.2コマンド
割り当て構文:
ZADDキーSCORE1のメンバー1 [score2 member2]
スコアの既存のメンバーを1つ以上のメンバーの順序付けられた集合に追加または更新
構文の値:
注文したコレクションのメンバーの数を取得するためにZCARDキー
順序付けられたセット内のメンバーの数を指定ZCOUNTキー最小最大スコア算出間隔
ZRANK主要メンバーは、指定されたメンバーの順序集合のインデックスを返します。
ZRANGEキー、スタートストップ[WITHSCORES]
これは、(低い順に)指定された範囲の合成におけるメンバーの順序集合によってインデックス間隔を返し
ZREVRANGEキー、スタートストップ[WITHSCORES]
戻り値は、最終的には高いから、指定された範囲、インデックスを通じて、スコア内のメンバーのセットを注文しました
構文を削除します。
デルキー コレクションを削除します
ZREMキーメンバー[メンバー...] 1つまたは複数のメンバーの順序付きコレクションの除去
与えられたランク間隔のすべてのメンバーの順序付きセットを削除ZREMRANGEBYRANKキー、スタートストップ(最高から最低)(最初は0です)
ZREMRANGEBYSCOREキー分maxは与えられたスコア範囲の順序付けられたセットのすべてのメンバーを削除します
1.3.3。シナリオ
リーダーボード:多くの場合に使用されます
例えば、スコアを投稿するパブリックタイムラインツイッターを格納することができる1は、自動的に時間かかる取得でソートされます。
例えば2、クラス全体のストレージのパフォーマンスソートセット、その値は、生徒の学校の集合であり、その試験のスコアにスコア付けすることができることができ、データがコレクションに挿入されるように、それはすでに自然の秩序を持っていました。
ソートセット3は、このようなスコア1のための共通のメッセージとしての重量キュー、と行うためにも使用することができ、重要なメッセージが2得点、その後、作業員は、作業タスクを取得するには、スコアを逆転することを選択できます。重要なタスクの優先順位を確認します。