Redis keyspace-meldingen inschakelen (preview)

Met Redis keyspace-meldingen kunnen clients zich abonneren op pub-/subkanalen om gebeurtenissen te ontvangen die van invloed zijn op de Redis-gegevensset. Gebruik keyspacemeldingen (preview) om wijzigingen in sleutels en waarden in uw Azure beheerde Redis-cache te controleren.

In dit artikel wordt beschreven hoe u een cache implementeert waarvoor keyspacemeldingen zijn ingeschakeld, clients verbindt met behulp van Redis-opdrachten, hoe u zich abonneert op meldingskanalen en hoe u de resulterende gebeurtenissen test.

Vereiste voorwaarden

Een cache implementeren waarvoor keyspacemeldingen zijn ingeschakeld

In dit voorbeeld gebruikt u een arm-sjabloon (Azure Resource Manager) en de Azure CLI om een Azure Managed Redis-cache te implementeren met keyspace-meldingen ingeschakeld.

Wijzig de CacheName en Region parameters in de volgende sjabloon en sla het bestand op als KeyspaceTemplate.json.

Opmerking

De notifyKeyspaceEvents waarde van KEA maakt keyspace-meldingen mogelijk voor de meeste gebeurtenissen. Ten minste 'K' OF 'E' is vereist voor het ontvangen van keyspace-meldingen. Zie de documentatie voor Redis keyspace-meldingen voor meer informatie over de verschillende gebeurtenistypen en het configureren van meldingen.

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

Implementeer de sjabloon met behulp van de opdracht az deployment group create Azure CLI. In het volgende voorbeeld bevindt de implementatie zich in de resourcegroep exampleRG .

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

Redis-clients verbinden

Open twee CLI-sessies met Redis Insight of redis-cliverbind beide clients met de cache.

Gebruik één terminal als abonnee die keyspace-meldingen ontvangt en de andere als de operator die Redis-opdrachten uitvoert.

Controleren en abonneren op gebeurtenissen

Controleer in beide terminal of de meldingsreeks is geconfigureerd.

CONFIG GET notify-keyspace-events

Kies in de abonneeterminal het abonnementspatroon dat overeenkomt met de gebeurtenissen die u wilt observeren. Hier volgen enkele voorbeelden:

  • Abonneer u op alle gebeurtenissen en alle sleutels:

    PSUBSCRIBE __keyevent@0__:* __keyspace@0__:*
    
  • Abonneren op een specifiek gebeurtenistype:

    SUBSCRIBE __keyevent@0__:set
    
  • Abonneren op een specifieke sleutel:

    SUBSCRIBE __keyspace@0__:mykey
    

Testmeldingen

Schakel over naar de operatorterminal en voer enkele Redis-opdrachten uit op een testsleutel.

SET mykey "hello"
EXPIRE mykey 10
DEL mykey

In de abonneeterminal ziet u welke gebeurtenissen zijn opgetreden en welke sleutels zijn beïnvloed.

In de volgende schermopname bevindt de abonneeterminal zich aan de linkerkant, geabonneerd op alle gebeurtenissen en alle sleutels, zodat er meldingen worden ontvangen voor alle gebeurtenissen die zich in de cache voordoen. De operatorterminal bevindt zich aan de rechterkant, waarbij Redis-opdrachten worden uitgegeven op basis van verschillende sleutels.

Redis CLI-sessie met uitvoer van keyspace notification subscription.

Instellingen voor meldingen bijwerken

U kunt de configuratie van keyspace-meldingen later wijzigen zonder de cache opnieuw te maken.

  1. Werk de notifyKeyspaceEvents waarde bij KeyspaceTemplate.json bij terwijl CacheName behouden blijft en Region hetzelfde blijft.
  2. Implementeer de sjabloon opnieuw.
az deployment group create --resource-group exampleRG --template-file KeyspaceTemplate.json

Door de meldingsinstellingen opnieuw te implementeren, worden deze bijgewerkt zonder gegevensverlies, zodat u gebeurtenissen kunt inschakelen, uitschakelen of wijzigen, zoals van KEA naar Ex gaan om alleen verloopgebeurtenissen bij te houden.

Opmerking

Als u de meldingsinstellingen bijwerkt in een bestaande cache die niet is geïmplementeerd via de EERDER weergegeven ARM-sjabloon, kunt u uw eigen sjabloon configureren om de notifyKeyspaceEvents eigenschap in te stellen. Zorg ervoor dat de sjabloon de bestaande cachecluster- en databaseconfiguraties bevat om te voorkomen dat andere cache-eigenschappen worden overschreven.