Tair (Redis OSS-compatible) インスタンスのメモリが不足した場合、インスタンスがメモリ制限を超えないように、データエビクション(または削除)ポリシーがトリガーされます。デフォルトのポリシーは volatile-lru です。このポリシーは、有効期限 (TTL) が設定されているキーの中から、最近使用されていない (LRU) キーをエビクトします。このトピックでは、Tair (Redis OSS-compatible) のエビクションポリシーについて説明します。
エビクションポリシー
volatile-lru (Tair DRAM ベースのインスタンスと Redis Open-Source Edition インスタンスのデフォルト): 有効期限が設定されているキーの中から、キーの有効期限が切れているかどうかに関係なく、LRU キーをエビクトします。
noeviction (Tair 永続メモリ最適化インスタンスのデフォルト): メモリ制限に達したときにスペースを確保するためにキーをエビクトせず、書き込み操作に対してエラーを返します。
volatile-lfu: 有効期限が設定されているキーの中から、LFU キーをエビクトします。
volatile-random: 有効期限が設定されているキーの中から、キーをランダムにエビクトします。
volatile-ttl: 有効期限が設定されているキーの中から、最も短い TTL を持つキーをエビクトします。
allkeys-lru: すべてのキーの中から、LRU キーをエビクトします。
allkeys-lfu: すべてのキーの中から、LFU キーをエビクトします。
allkeys-random: すべてのキーの中から、キーをランダムにエビクトします。
ESSD/SSD ベースのインスタンスでは、データエビクションはサポートされていません。
インスタンスのエビクションポリシーの変更
コンソール にログインします。目的のインスタンスの システムパラメーター ページで、maxmemory-policy パラメータの値を変更します。詳細については、「インスタンスパラメータの設定」をご参照ください。
よくある質問
有効期限がゼロになる前に、有効期限付きのキーが削除されるのはなぜですか?
インスタンスのメモリが使い果たされているかどうかを確認できます。インスタンスメモリが不足すると、データエビクションがトリガーされます。デフォルトのエビクションポリシー volatile-lru により、有効期限付きのキーが書き込まれると、これらのキーが優先的に削除されます。この場合は、インスタンスのメモリ容量を拡張できます。詳細については、「インスタンスの構成の変更」をご参照ください。
参考資料
キーの数が減少すると、有効期限切れのためにデータがクリアされる場合があります。Tair (Redis OSS-compatible) で有効期限切れのキーをクリアするためのポリシーと手動でクリアする方法については、「Tair で有効期限切れのキーをクリアする」をご参照ください。