すべてのプロダクト
Search
ドキュメントセンター

Tair (Redis® OSS-Compatible):OOSを使用して、期限切れのキーをTairまたはRedisから定期的に削除する

最終更新日:Dec 05, 2024

Tair (Redis OSS-compatible) インスタンスの特定のデータが期限切れになると、Tair (Redis OSS-compatible) はデフォルトポリシーに基づいて期限切れのデータを徐々に削除します。 その結果、期限切れのデータは依然としてメモリ空間を占有する。 CloudOps Orchestration Service (OOS) コンソールでスケジュールされたO&Mタスクを設定し、scanコマンドを実行してオフピーク時にすべてのキーをスキャンし、期限切れのキーをすぐに削除してメモリスペースを解放できます。

背景情報

読み取りと書き込みのパフォーマンスを確保するために、Tair (Redis OSS-compatible) は非同期削除ロジックを採用しています。 特定のデータが期限切れになると、Tair (Redis OSS-compatible) は期限切れのデータをすぐには削除しません。 代わりに、Tair (Redis OSS-compatible) は、アクティブ削除とパッシブ削除の組み合わせを使用して、期限切れのキーを徐々に削除します。 アクティブな削除の場合、Tair (Redis OSS-compatible) は定期的にバックグラウンドでキーをスキャンし、期限切れのキーの一部を削除します。 パッシブ削除の場合、ユーザーがこれらのキーにアクセスすると、Tair (Redis OSS-compatible) は期限切れのキーを削除します。 期限切れのデータはまだメモリスペースを占有します。 極端な場合、大量のデータが同時に期限切れになると、期限切れになったデータを削除して、占有されたメモリスペースを再利用するのに長い時間がかかります。

このトピックの手順を参照して、OOSサービスを無料で使用して、インスタンスでFlushExpireKeys操作を定期的に呼び出します。 インスタンスはSCANコマンドを実行してすべてのキーをスキャンし、期限切れのキーを直ちに削除します。

重要

SCANコマンドを実行してすべてのデータをスキャンすると、インスタンスのCPU負荷が増加する可能性があります。 オフピーク時にこのコマンドを実行することを推奨します。

前提条件

OOSがTair (Redis OSS-compatible) にアクセスするためのResource Access Management (RAM) ロールが作成されます。 詳細については、「OOSへのRAM権限の付与」をご参照ください。

  • AliyunKvstoreFullAccessシステムポリシーをRAMロールにアタッチできます。 ポリシーで定義された権限がロールに付与されると、ロールはTair (Redis OSS-compatible) のすべてのリソースを管理できます。

  • OOSがTair (Redis OSS-compatible) のDescribeInstancesおよびFlushExpireKeys操作を呼び出すために必要な最小限の権限を付与するカスタムポリシーを作成することもできます。 このポリシーは、RAMロールを現在のタスクのみに制限します。

    RAMロールにアタッチされたポリシーの例

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "kvstore:DescribeInstances",
                    "kvstore:FlushExpireKeys"
                ],
                "Resource": "*"
            }
        ]
    }

手順

  1. OOS コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[自動タスク] > [スケジュールされたO&M] を選択します。

  3. 表示されるページで、[作成] をクリックします。

  4. スケジュールされたO&Mタスクを設定します。

    説明

    このトピックでは、主要な手順のみを紹介します。 その他のパラメーターについては、OOSとは何ですか?

    スケジュールタスクの設定

    この例では、[定期的に実行] がスケジュールされたタスクタイプとして選択され、タスクは毎日04:00と16:00に実行されるように設定されています。

    image

    [期間実行の終了時間] パラメーターは2024-03-31 00:00:00に設定され、スケジュールされたO&Mタスクがこの時点で終了することを指定します。

    テンプレートを選択

    [パブリックテンプレート] 検索ボックスでACS-Redis-FlushExpireKeysを検索し、テンプレートを選択します。

    テンプレートパラメーターの設定

    1. 目的のインスタンスが存在するリージョンを選択し、インスタンスを選択します。

    2. [権限] ドロップダウンリストから、[前提条件] セクションで準備されているRAMロールを選択します。

    実行設定 (オプション)

    このタブのパラメーターにはデフォルト値を使用できます。

  5. [作成] をクリックします。 表示されるダイアログボックスで、[OK] をクリックします。

    [実行ステータス] 列の値が [有効] の場合、[スケジュールタスクの設定] タブで指定した設定に基づいてタスクが自動的に実行されます。

次に何をすべきか

[スケジュールされたO&M] ページで、作成したタスクの [実行ID] をクリックし、タスクの詳細ページに移動します。 このページでは、タスク情報を表示または変更したり、すぐに実行をトリガーしたり、実行履歴を表示したりできます。

さらに、期限切れのデータが削除され、メモリが再利用されたため、パフォーマンスモニタリングモジュールでインスタンスのメモリ使用量の減少を確認することもできます。

関連ドキュメント

  • OOSでアラートO&Mタスクを設定することもできます。 たとえば、平均メモリ使用量が90% に達したときにFlushExpireKeys操作を呼び出して期限切れのキーを削除するようにアラートO&Mタスクを設定できます。 アラートO&Mタスクを設定する手順は、このトピックの手順と同様です。 [自動タスク] > [アラートとイベントO&M] を選択して、アラートO&Mタスクを設定できます。 詳細については、「アラートO&Mタスクの作成」をご参照ください。

  • TairおよびRedisで期限切れのデータを削除する方法の詳細については、「Tairで期限切れのキーを消去する」をご参照ください。