maxmemory-policy を設定します。デフォルトポリシーは noeviction(キーを削除しません)であり、メモリが満杯になるとすべての書き込み操作を拒否し、OOMエラーを返します。インスタンス作成後すぐに淘汰ポリシーを変更し、メモリ満杯によるサービス中断を回避することをお勧めします。パラメータの設定方法については、インスタンスパラメータの管理 を参照してください。略語 | 正式名称 | 説明 |
LRU | Least Recently Used | 最も長く使われていないものを優先的に削除します。各キーが最後にアクセスされた時刻を記録し、最も長くアクセスされていないキーを優先的に削除します。 |
LFU | Least Frequently Used | 最も使用頻度が低いものです。各キーがアクセスされた回数を記録し、アクセス回数が最も少ないキーを優先的に削除します。 |
TTL | Time To Live | 生存時間です。キーが期限切れになるまでの残り時間を測定します。 |
ポリシー | 適用範囲 | 淘汰ルール |
allkeys-lru | すべてのキー | 最も長く使われていないキーを優先的に削除し、十分な空き容量が確保されるまで続行します。 |
allkeys-lfu | すべてのキー | アクセス回数が最も少ないキーを優先的に削除し、十分な空き容量が確保されるまで続行します。 |
allkeys-random | すべてのキー | キーをランダムに削除し、十分な空き容量が確保されるまで続行します。 |
volatile-lru | 有効期限を設定したキー | TTLが設定されたキーの中で、最も長く使われていないキーを優先的に削除します。 |
volatile-lfu | 有効期限を設定したキー | TTLが設定されたキーの中で、アクセス回数が最も少ないキーを優先的に削除します。 |
volatile-ttl | 有効期限を設定したキー | TTL値が小さい(つまりまもなく期限切れになる)キーを優先的に削除します。TTLが設定されたキーがない場合は、 noevictionポリシーにフォールバックします。 |
volatile-random | 有効期限を設定したキー | 有効期限が設定されたキーをランダムに削除します。 |
noeviction | — | データを一切削除せず、すべての書き込み操作を拒否し、エラー情報 "(error) OOM command not allowed when used memory"を返します。このとき、読み取り操作にのみ応答します。 |
volatile-lru は混合シナリオにおける代替案としてのみ使用します。シーン | 推奨戦略 | 説明 |
純粋なキャッシュとして使用(推奨) | allkeys-lru | すべてのキーは淘汰される可能性があります。最も長くアクセスされていないキーが優先的に削除されます。使用頻度が最も低いキーはその後のヒット率も最も低く、淘汰後も業務への影響は最小限です。 |
一部のキーは永続的に保持する必要があります。 | volatile-lru | 有効期限が設定されたキーのみを淘汰し、有効期限が設定されていないキーには影響しません。キャッシュデータ(TTL設定あり)と設定データ(TTL設定なし)が混在するシナリオに適しています。 |
キーのライフサイクルを正確に制御する必要があります。 | volatile-ttl | まもなく期限切れになるキーを優先的に淘汰します。データの時効性に明確な要件があるシナリオに適しています。 |
noeviction から allkeys-lru に変更します。現在の淘汰ポリシーを確認します。CONFIG GET maxmemory-policyallkeys-lru に設定します。CONFIG SET maxmemory-policy allkeys-lru
設定方法 | 問題説明 |
デフォルトの noevictionを使用し、変更していません。 | メモリが満杯になると、すべての書き込み操作が拒否され、OOMエラーが返され、サービスへの書き込みが中断されます。 |
すべてのキーにTTLが設定されていないにもかかわらず、 volatile-lruを使用しています。 | volatile-*ポリシーは、有効期限が設定されたキーにのみ適用されます。すべてのキーにTTLが設定されていない場合、noevictionと同等になり、メモリを解放できません。 |
allkeys-randomを使用して優先度付きのキャッシュデータを処理します。 | ランダム淘汰はアクセス頻度を区別しないため、高頻度でアクセスされるホットキーを誤って削除し、キャッシュヒット率の低下を招く可能性があります。 |
フィードバック