A. Redisの
Redisのは、オープンソース(BSDライセンス)、データベース、キャッシュおよびメッセージングミドルウェアとして使用することができるメモリ・システムに格納されたデータ構造です。
中国の公式アドレス:http://www.redis.cn/
文字列(文字列)、ハッシュ(ハッシュ)、リスト(一覧)、セット(集合)とZSET(ソートセット::順序付きコレクション)Redisのは、5つのデータ型をサポートしています
文字列(String)を
文字列があるRedisのあなたは、として理解することができる、最も基本的なタイプのMemcached まったく同じタイプ、キーに対応する値。
文字列タイプはバイナリセーフです。意味のRedis の文字列は、任意のデータを含めることができます。などのjpg 画像またはシリアル化されたオブジェクト。
文字列型であるRedisの基本データ型、文字列型は、最大値格納することができる512メガバイトを。
ハッシュ(ハッシュ)
Redisのハッシュはキーである(キー=>値)ペア。
Redisのハッシュである文字列型のフィールドと値マッピングテーブルの、ハッシュは、特にオブジェクトを格納するのに適しています。
一覧(リスト)
Redisののリストは、文字列、ソート挿入順序の単純なリストです。あなたは(右)(左)リストの先頭または尾に要素を追加することができます
SET (コレクション)
Redisののセットである文字列順不同コレクションのタイプ。
コレクションは、検索の複雑さがあるので、追加、削除、ハッシュテーブルによって達成される O(1) 。
SADD コマンド
追加の文字列に要素をキーに対応するセットコレクション、成功リターン1 要素がコレクション内に返された場合は0
ZSET(SETソート:注文したコレクションを)
RedisのZSET と設定同じもの文字列要素のコレクション型を、重複メンバーを許可していません。
差があろう各要素に関連付けられているダブルスコアの種類。Redisのそれはメンバーの合格点のコレクションの大きな順に小さなにあります。
ZSET 部材のみであり、しかし得点(スコア)が、繰り返すことができます
II。Redisのストレージ
Redisのの申し出二つの記憶方法:RDB と のAOF
RDBが永続した後、一時ファイルにデータを書き込むことで、データの回復を達成するために、一時ファイルで、以前のファイルを置き換えます
AOF命令は、前方から後方にデータを復元し、データ復旧を実行する命令を渡すために、レコードに実行されます。
RDBストレージはデフォルトのストレージ、少数で、同時性があるかどうかを気にしない、データがされていない、最高のセキュリティを失った、最小スペースを占領しました。分散方法でAOF、問題を処理する多数のデータに対応することができるが、それでもデータの損失が存在することになります
III。Redisのキャッシュ制圧戦略
( 1 )揮発性-LRU :最も最近使用されたデータからデータ・セットの選択フェーズのセットの有効期限。
( 2 )揮発性-TTLは:データ・セットの選択のセット有効期限から除外データを期限切れにします。
( 3 )揮発性ランダム:任意に選択されたデータをデータセットからの有効期限を設定します。
( 4 )揮発性-LFU :除去最低周波数データを使用するデータセットのセット有効期限から選択します。
( 5 )AllKeys LRU- :最近使用された少なくともアウトデータセットの選択フェーズからデータ
( 6 )AllKeys-LFU :除去最低周波数データを使用するデータセットから選びます。
( 7 )AllKeysランダムデータセットから(:server.db [I] .dict 任意選択データアウト)
( 8 )NO-enviction (追放):デフォルトのポリシーであり、排出データを禁止します。記憶手段は、新たなデータを収容するのに不十分である場合、新しい書き込み動作を用いて、ライン作業を進めることができる要求を継続することができない、説明する非envictionの失われないデータを確保することができるポリシー。
これらの8つは、に分けることができる 4 にLRU 、LFU 、ランダム、TTLの
フェーズアウト機構
( 1 )パッシブ方式(パッシブウェイ失敗したことが判明した場合、主キーがアクセスされる)、それを削除します。Redisのの実現にGET 、MGET 、HGET 、LRANGE それは、このような呼びます読み取りデータとしてすべてのコマンドに来るときexpireIfNeededをそれはそれを削除するために失敗した場合には、故障していないことを確認するために、データを読み取る前に存在していることを意味し、。
expireIfNeeded 別の関数の関数呼び出しpropagateExpireは、この関数は、公式削除、無効な主キーで使用され、放送の残りの部分を教えている、2つの宛先があります。AOFのファイルは、プライマリキーの失敗を削除します。この操作DELキーの標準的なコマンド形式の記録ダウン;他は現在に送られるRedisのすべてのサーバスレーブ、同じ失敗は、この操作に主キーを削除しますDELキー知らせるために、標準のコマンド形式スレーブが各失敗の主キーを削除します。
( 2 )正方法(アクティブ・ウェイ)定期的に削除する失敗を見つけ、検出します。ネガティブアプローチの欠点は、場合ということですキー遅延がアクセスされ、それはこれだけ積極的に、メモリ空間の多くを取るでしょう。
( 3 )削除するためのイニシアチブを取る:ときのメモリよりmaxmemory 構成起動パラメータによって決定されたポリシーをクリーンアップするためのイニシアチブを誘発、制限時間
のうちデータ量
それは、データ、それのうち適切な数の出ているので?
確かに多くの除去よりも、頻繁なトリガー除去戦略を回避するために、それぞれが、データのバッチを排除するという事実のうちデータのサイズや交換のサイズを決定するために、置換データボリュームなら