Redis キースペース通知を有効にする (プレビュー)

Redis キースペース通知を使用すると、クライアントは Pub/Sub チャネルをサブスクライブして、何らかの方法で Redis データ セットに影響を与えるイベントを受信できます。 キースペース通知 (プレビュー) を使用して、Azure Managed Redis キャッシュ内のキーと値の変更を監視します。

この記事では、キースペース通知を有効にしてキャッシュをデプロイし、Redis コマンドを使用してクライアントを接続し、通知チャネルをサブスクライブして、結果のイベントをテストする方法について説明します。

前提条件

  • Redis Insight または redis-cli コマンド ライン ツール。 インストール手順については、「クライアント ツールを使用して Azure Managed Redis 内のデータを管理する方法を参照してください。

    Redis クライアント ツールを使用する場合は、Azure Managed Redis が利用可能な場合は Microsoft Entra ID認証を使用することをお勧めします。

  • Azure Resource Manager (ARM) テンプレートの理解。 詳細については、Azure Resource Manager ドキュメントを参照してください。

  • Azure CLIの場合:

    • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Get started with Azure Cloud Shell」を参照してください。

    • CLI 参照コマンドをローカルで実行する場合は、Azure CLIinstallします。 Windowsまたは macOS で実行している場合は、Docker コンテナーでAzure CLIを実行することを検討してください。 詳細については、「 Docker コンテナーでAzure CLIを実行する方法を参照してください。

      • ローカル インストールを使用している場合は、az login コマンドを使用してAzure CLIにサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「Azure CLI を使用して Azure に認証する方法」を参照してください。

      • メッセージが表示されたら、最初に使用するときにAzure CLI拡張機能をインストールします。 拡張機能の詳細については、「Azure CLIを参照してください。

      • az version を実行して、インストールされているバージョンと依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

キースペース通知を有効にしてキャッシュをデプロイする

この例では、Azure Resource Manager (ARM) テンプレートとAzure CLIを使用して、キースペース通知が有効になっているAzure Managed Redis キャッシュをデプロイします。

次のテンプレートで CacheName パラメーターと Region パラメーターを変更し、ファイルを KeyspaceTemplate.jsonとして保存します。

"KEA" の notifyKeyspaceEvents 値により、ほとんどのイベントのキースペース通知が有効になります。 キースペース通知を受信するには、少なくとも "K" または "E" が必要です。 さまざまなイベントの種類とその通知を構成する方法の詳細については、 Redis キースペース 通知のドキュメントを参照してください。

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "cachename": {
            "defaultValue": "{CacheName}",
            "type": "String"
        },
        "region": {
            "defaultValue": "{Region}",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.Cache/redisEnterprise",
            "apiVersion": "2026-02-01-preview",
            "name": "[parameters('cachename')]",
            "location": "[parameters('region')]",
            "sku": {
                "name": "Balanced_B5"
            },
            "identity": {
                "type": "None"
            },
            "properties": {
                "minimumTlsVersion": "1.2",
                "publicNetworkAccess": "Enabled"
            }
        },
        {
            "type": "Microsoft.Cache/redisEnterprise/databases",
            "apiVersion": "2026-02-01-preview",
            "name": "[concat(parameters('cachename'), '/default')]",
            "dependsOn": [
                "[resourceId('Microsoft.Cache/redisEnterprise', parameters('cachename'))]"
            ],
            "properties": {
                "clientProtocol": "Encrypted",
                "port": 10000,
                "clusteringPolicy": "OSSCluster",
                "evictionPolicy": "NoEviction",
                "persistence": {
                    "aofEnabled": false,
                    "rdbEnabled": false
                },
                "notifyKeyspaceEvents": "KEA"
            }
        }
    ]
}

az デプロイ グループの create Azure CLI コマンドを使用してテンプレートをデプロイします。 次の例では、デプロイは exampleRG リソース グループにあります。

az deployment group create --resource-group exampleRG --template-file KeyspaceTemplate.json

Redis クライアントの接続

Redis Insight または redis-cli を使用して、2 つの CLI セッションを開き、両方のクライアントをキャッシュに接続します。

キースペース通知を受信するサブスクライバーとして 1 つのターミナルを使用し、もう 1 つのターミナルを Redis コマンドを実行するオペレーターとして使用します。

イベントを確認して購読する

どちらのターミナルでも、通知文字列が構成されていることを確認します。

CONFIG GET notify-keyspace-events

サブスクライバー ターミナルで、観察するイベントに一致するサブスクリプション パターンを選択します。 次に例を示します。

  • すべてのイベントとすべてのキーを登録する。

    PSUBSCRIBE __keyevent@0__:* __keyspace@0__:*
    
  • 特定のイベントの種類を購読します。

    SUBSCRIBE __keyevent@0__:set
    
  • 特定キーを購読します。

    SUBSCRIBE __keyspace@0__:mykey
    

テスト通知

オペレーター ターミナルに切り替え、テスト キーに対していくつかの Redis コマンドを実行します。

SET mykey "hello"
EXPIRE mykey 10
DEL mykey

サブスクライバー ターミナルには、発生したイベントと影響を受けたキーが表示されます。

次のスクリーンショットでは、サブスクライバー ターミナルは左側にあり、すべてのイベントとすべてのキーをサブスクライブしているため、キャッシュ内で発生するすべてのイベントの通知を受信します。 演算子ターミナルは右側にあり、Redis コマンドはさまざまなキーに対して発行されます。

キースペース通知サブスクリプションの出力を示す Redis CLI セッション。

通知設定を更新する

キースペース通知の構成は、後でキャッシュを再作成せずに変更できます。

  1. notifyKeyspaceEventsKeyspaceTemplate.jsonを維持したまま、CacheNameRegion値を更新します。
  2. テンプレートを再デプロイします。
az deployment group create --resource-group exampleRG --template-file KeyspaceTemplate.json

再デプロイすると、データ損失なしで通知設定が更新されます。これにより、追跡対象のイベントを有効、無効、または変更できます (有効期限イベントのみを追跡する KEA から Ex に移動するなど)。

前に示した ARM テンプレートを使用してデプロイされていない既存のキャッシュの通知設定を更新する場合は、 notifyKeyspaceEvents プロパティを設定するように独自のテンプレートを構成できます。 他のキャッシュ プロパティが上書きされないように、テンプレートに既存のキャッシュ クラスターとデータベース構成が含まれていることを確認します。