有効期限ポリシーと排除の戦略

有効期限ポリシーと排除の戦略

有効期限ポリシー

キーの有効期限を設定します。キー5(5Sが期限切れ)有効期限が切れ

TTLキー(タイムアウトリターンを設定していない-1、タイミング戻る-2):キーの残り時間を見ます

Redisのは、2つの方法、すなわち、怠惰な削除とタイミングトラバーサルで達成期限が切れました。

とき怠惰な削除は、あなたが期限切れの削除した場合、有効期限が切れていますかどうかを確認に行くためにキーを使用することです。

タイミングは、集中処理を横断する方法であり、鍵のRedisの設定は、辞書の同一の有効期限にすべて入れ、デフォルトの有効期限は、毎秒10回走査、各辞書は、ランダムキー20であり、その後、前記場合、除去しますスキャン時に過度のサイクリングキャップを防ぐために、このアクションを繰り返す四半期より期限切れのより多くの割合が25msのです。あなたは、クライアントのタイムアウトを設定している場合しかし、たとえそうであっても、接続障害は、例外の数を報告されます。

単一スレッドのRedisは、延滞スタックキーの多数の発生を回避するために、冗長性を防止するために、典型的には固定された確率的に活性な有効期限+時間と、ランダムな範囲を与えるために有効期限を設定します。

ライブラリーからの有効期限ポリシーは受動的であり、本体のみのライブラリAOFは、キーを削除し、ログファイルに書き込まれた操作を待つ、その後、ライブラリに同期することができます。この非同期同期は矛盾のリスクをもたらす可能性があります。

制圧戦略

あなたも対処するためにいくつかの戦略を選択することができ超えた場合Maxmemoryは、メモリの最大使用を制限するように設定することができます。

noeviction:書込み要求にサービスを提供していきません、読み出し要求は、排除のデフォルトの戦略である、進むことができます

揮発性-LRU:フェーズアウトの期限が切れている、少なくとも使用されるキー

揮発性-TTL:フェーズアウトの期限が切れている、最短残りの人生

揮発性ランダム:ランダムいくつかの期限が切れている取り除きます

allkeys-LRU:少なくとも使用されているものの鍵をなくします

allkeysランダム:ランダムには、いくつかのキーを排除します

あなたが永続的な機能を使用したい場合は、allkeysを使用することができますので、あなただけの、Redisのキャッシュ機能を再生する場合は、永久キーを排除すべきでないことを確認、揮発性を使用する必要があります。

バージョン4.0では政策のうち、2を追加します。

キーの有効期限が切れていると、すべてのキーLFUがLFUカウントこのオプションをオンにし、除去した後、揮発性-LFUとallkeys-LFUは、オブジェクトに対して得られました。LFU熱は、アクセス頻度、熱のうち低い優先度に応じて算出されます。熱はRedisのLFU分のクラスで、Redisのキャッシュシステムのタイムスタンプ(非常に時間がかかるため、システムコールを取得します)。

消去アルゴリズム

Redisのは、LRUアルゴリズムでは近似である厳密には多くのメモリを消費するので、データ構造は非常に複雑で使用しています。各キーに対するこの近似LRUは、低メモリまでmaxmemoryメモリLRU、キーのいくつかのランダムな選択を実行し、最も古い鍵を除去します超えることが見出された場合、タイムスタンプ情報が最後にアクセスされた時間を加算し、次にループこれまでmaxmemoryインチ redis3.0でも、このアルゴリズムの効果を高めるために排除プールを追加し、各キーは、プールの外に循環の外に置く、その後、古いキーを最大限に選択され、残りは引退したプールに残ります。

おすすめ

転載: www.cnblogs.com/shizhuoping/p/11525764.html