Activer les notifications d’espace de clés Redis (aperçu)

Les notifications d’espace de clés Redis permettent aux clients de s’abonner aux canaux Pub/Sub pour recevoir des événements qui affectent la base de données Redis de quelque manière que ce soit. Utilisez des notifications d’espaces de clés (aperçu) pour surveiller les modifications apportées aux clés et aux valeurs dans votre cache Redis géré Azure.

Cet article explique comment déployer un cache avec des notifications d’espace de clés activés, connecter des clients à l’aide de commandes Redis, s’abonner aux canaux de notification et tester les événements résultants.

Prerequisites

Déployer un cache avec des notifications de keyspace qui sont activées

Dans cet exemple, utilisez un modèle ARM Azure Resource Manager et la CLI Azure pour déployer un cache Redis géré par Azure avec des notifications de keyspace activées.

Modifiez les paramètres CacheName et Region dans le modèle suivant, puis enregistrez le fichier sous KeyspaceTemplate.json.

Note

La notifyKeyspaceEvents valeur de « KEA » active les notifications de keyspace pour la majorité des événements. Au moins « K » OU « E » est nécessaire pour recevoir des notifications d’espace de clés. Consultez la documentation sur les notifications d’espace de clés Redis pour plus d’informations sur les différents types d’événements et sur la configuration des notifications pour eux.

{
    "$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"
            }
        }
    ]
}

Déployez le modèle à l’aide de la commande az deployment group create Azure CLI. Dans l’exemple suivant, le déploiement se trouve dans le groupe de ressources exampleRG.

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

Connecter des clients Redis

À l’aide de Redis Insight ou redis-cli, ouvrez deux sessions CLI et connectez les deux clients au cache.

Utilisez un terminal comme abonné qui reçoit des notifications d’espace de clés et l’autre en tant qu’opérateur qui exécute des commandes Redis.

Vérifier et s’abonner aux événements

Dans l’un ou l’autre terminal, vérifiez que la chaîne de notification est configurée.

CONFIG GET notify-keyspace-events

Dans le terminal de l’abonné, choisissez le modèle d’abonnement qui correspond aux événements que vous souhaitez observer. Voici quelques exemples :

  • Abonnez-vous à tous les événements et à toutes les clés :

    PSUBSCRIBE __keyevent@0__:* __keyspace@0__:*
    
  • Abonnez-vous à un type d’événement spécifique :

    SUBSCRIBE __keyevent@0__:set
    
  • Abonnez-vous à une clé spécifique :

    SUBSCRIBE __keyspace@0__:mykey
    

Notifications de test

Basculez vers le terminal opérateur et exécutez quelques commandes Redis sur une clé de test.

SET mykey "hello"
EXPIRE mykey 10
DEL mykey

Le terminal de l’abonné indique quels événements se sont produits et quelles clés ont été affectées.

Dans la capture d’écran suivante, le terminal de l’abonné est à gauche, abonné à tous les événements et à toutes les clés, de sorte qu’il reçoit des notifications pour tous les événements qui se produisent dans le cache. Le terminal opérateur se trouve à droite, où les commandes Redis sont émises sur différentes clés.

Session CLI Redis affichant le résultat de l’abonnement aux notifications de l’espace de clés.

Mettre à jour les paramètres de notification

Vous pouvez modifier la configuration de notification d’espace de clés ultérieurement sans recréer le cache.

  1. Mettez à jour la valeur de notifyKeyspaceEvents dans KeyspaceTemplate.json tout en conservant CacheName et Region identiques.
  2. Redéployez le modèle.
az deployment group create --resource-group exampleRG --template-file KeyspaceTemplate.json

Le redéploiement met à jour les paramètres de notification sans perte de données, ce qui vous permet d’activer, de désactiver ou de modifier les événements suivis, par exemple en passant de KEA à Ex pour suivre uniquement les événements d’expiration.

Note

Si vous mettez à jour les paramètres de notification sur un cache existant qui n’a pas été déployé via le modèle ARM indiqué précédemment, vous pouvez configurer votre propre modèle pour définir la notifyKeyspaceEvents propriété. Vérifiez que le modèle inclut le cluster de cache et les configurations de base de données existants pour éviter de remplacer d’autres propriétés de cache.