Redisメモリ淘汰ポリシー
1197 ワード
Expire
Redisのデータはexpireコマンドを使用して期限切れを設定することができ、期限切れになった後、reidsはすぐに期限切れのkeyを削除するわけではありません.期限切れkeyの処理には2つの方法が採用されています.
メモリ淘汰ポリシー
redisプロファイルにはmaxMemoryパラメータがあり、メモリ内のデータが最大メモリの構成に達すると、新しいデータ書き込みは淘汰ポリシーを実行します.maxMemoryが0に設定されている場合は、システムメモリが新しい書き込みデータを格納するのに不足している場合、redisもメモリ淘汰ポリシーを採用します.
1. noeviction: ** **;
2. allkeys-lru: ** ** ;
3. allkeys-random: ** ** ;
4. volatile-ttl: ** ** ;
5. volatile-random: ** ** ;
6. volatile-lru: ** ** ;
メモリ淘汰ポリシー設定のデフォルトはnoevictionです.
# maxmemory-policy noeviction
LRU
redisが採用したLRUは非正確なLRUアルゴリズムであり、サンプリングに基づいて実現される.redisは単一スレッドであるため、全量のデータを用いてLRU計算を行うと、CPUリソースが比較的消費される.従って、redisは、頻繁に使用されないkeyをランダムに5つ選択して除去することを示す
# maxmemory-samples 5
という重要なパラメータを提供する.構成されたパラメータ値が大きいほど、LRUの結果は全量LRUの結果に近づくことができます.ただし、CPUに大きなオーバーヘッドが発生するため、redisをLRUキャッシュサービスとして使用する場合は、デフォルトの構成を維持することをお勧めします.備考:LRUアルゴリズムとLRUアルゴリズムの実現を理解する;