Tair (Redis OSS 互換) は、3つの組み込みポリシーを通じて期限切れキーを自動的に削除します。有効期限を設定しているにもかかわらずキー数が想定外に増加した場合や、大量のキー (数万から数十万) が短時間で期限切れになった場合、組み込みポリシーだけでは十分に速く削除できないことがあります。このページでは、自動削除の仕組みと、クリーンアップを高速化する方法について説明します。
仕組み
Tair は 3つのポリシーを使用して、期限切れキーを自動的に削除します。いずれのポリシーも手動での操作は不要です。
受動的失効
クライアントがキーにアクセスすると、Tair はそのキーが期限切れかどうかを確認します。期限切れの場合、Tair は即座にそのキーを削除します。パッシブ削除は軽量ですが、実際にアクセスされたキーに対してのみ実行されます。そのため、二度と読み取られないキーは、他の何らかの仕組みによって削除されるまでメモリに残り続けます。
アクティブ削除
パッシブ削除だけでは二度とアクセスされないキーを処理できないため、Tair は定期的に有効期限が設定されたキーをサンプリングし、すでに期限切れになっているキーを削除します。
強制エビクション
メモリ使用量が maxmemory の上限に達すると、Tair は操作をブロックしたり、キーをエビクションしたり、メモリ不足 (OOM) エラーを発生させたりします。デフォルトでは、volatile-lru ポリシーが使用されます。
エビクションポリシーを確認または変更するには、「サポートされているパラメーター」で maxmemory-policy パラメーターをご参照ください。
期限切れキーの削除の高速化
以下の方法で、期限切れキーのクリーンアップを高速化できます。状況に応じて適切な方法を選択してください。
「データのパージ」機能による即時クリーンアップ
インスタンス詳細ページの [データのパージ] 機能を使用すると、すべての期限切れキーを可能な限り短時間で削除できます。
この操作はインスタンスのリソースを大量に消費するため、実行中のワークロードに影響を与える可能性があります。オフピーク時間帯に実行してください。
手順については、「データのパージ」をご参照ください。
CloudOps Orchestration Service によるクリーンアップのスケジューリング
CloudOps Orchestration Service (OOS) を使用して、オフピーク時間帯に期限切れキーを削除する定期的な O&M タスクをスケジューリングできます。これにより、営業時間中のリソースの急増を回避できます。
手順については、「期限切れキーの定期的な削除」をご参照ください。
アクティブな失効頻度を高くする
hz パラメーターは、アクティブ削除を含む Tair のバックグラウンドタスクの実行頻度を制御します。hz の値を大きくすると、Tair はより頻繁に期限切れキーのサンプリングと削除を行うようになります。
hz の値を大きくすると、CPU 消費量が増加します。インスタンスの過負荷を避けるため、値を 10 ずつ増やし、変更のたびに CPU 使用率を監視してください。
手順については、「バックグラウンドタスクの動的周波数制御を有効化する」をご参照ください。
キーへの TTL の設定
キーに有効期限が設定されていない場合、キーは無期限に蓄積されます。データが実際に必要とされる期間に基づいて、キーに Time-to-Live (TTL) を割り当ててください。これにより、古いデータの長期的なストレージを防ぎ、将来的な蓄積の可能性を低減できます。