redis ダウンロード:ダウンロード | Redis
まず、Redis がキーを積極的にクリーンアップするこの種のアクションがどのような状況で発生するかを理解します。
Redis には maxmemory (最大メモリ) という設定があり、使用されているメモリが制限を超えたときに Redis のアクティブ クリーンアップ戦略がトリガーされます。
Redis の現在のバージョンには、8 つのメモリ削減戦略があります。
1. volatile-ttl: 有効期限が設定されているデータは、有効期限の順序に従い、有効期限が早いほど削除が早くなります。
2. Volatile-random: 有効期限が設定されているデータの期限切れのキーと値のペアをランダムに削除します。
3. Volatile-lru: 有効期限が設定されているデータは、LRU アルゴリズムに従って削除されます。
4. Volatile-lfu: 有効期限が設定されているデータは、LFU アルゴリズムに従って削除されます。
5. allkeys-random: すべてのデータをランダムに削除します。
6. allkeys-lru: すべてのデータについて、LRU アルゴリズムに従って削除します。
7. allkeys-lfu: すべてのデータについて、LFU アルゴリズムに従って削除します。
8. noeviction: データを削除せず、すべての書き込み操作を拒否し、クライアント エラー メッセージ「(エラー) メモリ使用時は OOM コマンドは許可されません」を返し、読み取り操作のみに応答します。
概要: スキーム 1、2、3、4 は有効期限が設定されたデータ用、スキーム 5、6、7 はすべてのデータ用、スキーム 8 はメモリを扱いません。
LRU および LFU アルゴリズム:
LRU:最も最近使用されていないアルゴリズム。長期間アクセスされていないデータを除外し、最新のアクセス時間を基準として使用します。
LFU: 最も頻繁に使用されないアルゴリズムは、アクセス数に基づいて、直近の期間に最もアクセスのなかったデータを削除します。
LRU と LFU は使用シナリオが異なり、通常は LRU が使用されますが、話題のニュースや話題のアイテムなどのデータには LFU を使用する方が合理的です。