Redis-17-メモリ淘汰ポリシー
3067 ワード
述べる
redisの期限切れポリシーについて説明しましたが、メモリ淘汰ポリシーについて説明します.
メモリ淘汰ポリシーとは、ユーザが格納したkeyの一部がRedisによってアクティブに削除され、missを読む可能性があることを指すが、なぜRedisにこのような機能があるのだろうか.
仮に私が今redisのサーバーを持っていて、メモリは2 Gで、システム業務の増加に従って、reidsの中に置くデータはますます多くなって、データの大きさはすでに2 Gを超えたかもしれませんが、この時応用はまだ正常に運行することができて、これはOSの中の可視メモリが物理メモリの制限を受けないためで、仮想メモリで、物理メモリが足りないならば、OSはハードディスクの上から1枚の空間を分けて仮想メモリを構築して、これはOSが私たちのために解決したので、しかし、不合理なメモリの使用は頻繁なswapが発生する可能性があり、頻繁なswapの代価は大きいので、私たちはやはり合理的なメモリの使用が必要で、できるだけオペレーティングシステムに解決させないでください
Redisのメモリ淘汰メカニズムは、メモリをよりよく使用するために、メモリの使用効率を一定のキャッシュmissで交換することです.
メモリ淘汰プロセス
メモリの廃棄プロセスは、次のようになります.
メモリ淘汰ポリシー
メモリ淘汰はRedisが提供する機能の一つにすぎません.この機能をよりよく実現するためには、異なるアプリケーションシーンに異なるポリシーを提供しなければなりません.メモリ淘汰ポリシーは、メモリ淘汰を実現するために具体的にどのようにしますか.解決する問題には、淘汰キー空間を含めてどのように選択しますか.キースペースでキーを淘汰するにはどうすればいいですか?
redisは、ユーザーが選択できるメモリ淘汰ポリシーをいくつか提供します.
redisのデフォルトのメモリ淘汰ポリシーはnoevictionです.
ここでは、プライマリ・キー領域と有効期限が設定されているキー領域を補足します.
例えば、Redisに格納一連のキーがあるとすると、そのバッチキーとその値を格納するハッシュテーブルがあり、その一部に期限切れ時間が設定されている場合、このバッチキーは他のハッシュテーブルにも格納され、このハッシュテーブルの値はキーが設定期限切れ時間に対応する.有効期限が設定キー空間は、プライマリキー空間のサブセットである.
簡単に言えば、プライマリ・キー・スペースは私たちのデータであり、有効期限が設定されているキー・スペースはキーとその有効期限です.
構成方法
我々はredisでconfでは
maxmemory
という値を設定してメモリ淘汰機能をオンにします.最大使用可能なメモリです.maxmemory
が0の場合、Redisのメモリ使用に制限はありません.メモリ淘汰ポリシーの設定は
maxmemory-policy
で構成され、デフォルトはnoevictionです.以下のようになります.maxmemory-policy noeviction
淘汰ポリシーの選択方法
構成はどのように組み合わせるか知っていますが、上の多くの戦略はどのように選択しますか?
Redisに格納されているデータセットへのアプリケーション要求のアクセス方法と、要求が何であるかを理解する必要があります.また、RedisはRuntimeの淘汰ポリシーの修正をサポートし、Redisインスタンスを再起動する必要がなく、メモリ淘汰ポリシーをリアルタイムで調整することができる.
いくつかのポリシーが適用されるシーンを見てみましょう.
また、volatile-lruポリシーとvolatile-randomポリシーは、キャッシュおよび永続化ストレージに1つのRedisインスタンスを適用する場合に適していますが、2つのRedisインスタンスを使用することで同じ効果を達成することができます.keyを期限切れに設定すると、実際にはより多くのメモリが消費されるため、allkeys-lruポリシーを使用してメモリをより効率的に使用することをお勧めします.
LRU
redisが採用するLRUは非正確なLRUアルゴリズムであり、サンプリングに基づいて実現される.redisは単一スレッドであるため、全量のデータを用いてLRU計算を行うと、CPUリソースが比較的消費されるため、redisは重要なパラメータを提供する.
maxmemory-samples 5
このパラメータは、頻繁に使用されないキーを5つランダムに選択して削除するたびに、構成のパラメータ値が大きいほど、LRUの結果は全量LRUの結果に近いが、CPUに比較的大きなオーバーヘッドをもたらすため、redisをLRUキャッシュサービスとして使用するだけで、デフォルトの構成を維持することを推奨する
テキストアドレス