Abilitare le notifiche keyspace di Redis (anteprima)

Le notifiche keyspace di Redis consentono ai client di sottoscrivere i canali Pub/Sub per ricevere eventi che influiscono sul set di dati Redis in qualche modo. Usare le notifiche keyspace (anteprima) per monitorare le modifiche apportate a chiavi e valori nella cache redis gestita di Azure.

Questo articolo illustra come distribuire una cache con le notifiche keyspace abilitate, connettere i client usando i comandi Redis, sottoscrivere i canali di notifica e testare gli eventi risultanti.

Prerequisiti

Distribuire una cache con le notifiche dello spazio delle chiavi abilitate

In questo esempio usare un modello di Azure Resource Manager (ARM) e il Azure CLI per distribuire una cache Redis gestita di Azure con le notifiche di keyspace abilitate.

Modificare i CacheName parametri e Region nel modello seguente e salvare il file come KeyspaceTemplate.json.

Annotazioni

Il notifyKeyspaceEvents valore di "KEA" abilita le notifiche keyspace per la maggior parte degli eventi. Per ricevere le notifiche di keyspace, è necessario almeno "K" O "E". Per altre informazioni sui diversi tipi di eventi e su come configurare le notifiche, vedere la documentazione relativa alle notifiche di Redis keyspace .

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

Distribuire il modello usando il comando az deployment group create Azure CLI. Nell'esempio seguente la distribuzione si trova nel gruppo di risorse exampleRG .

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

Connettere i client Redis

Usando Redis Insight o redis-cli, aprire due sessioni dell'interfaccia della riga di comando e connettere entrambi i client alla cache.

Usare un terminale come sottoscrittore che riceve le notifiche keyspace e l'altro come operatore che esegue i comandi Redis.

Verificare e sottoscrivere gli eventi

In entrambi i terminal verificare che la stringa di notifica sia configurata.

CONFIG GET notify-keyspace-events

Nel terminale del sottoscrittore scegliere il modello di sottoscrizione corrispondente agli eventi che si desidera osservare. Di seguito sono illustrati alcuni esempi:

  • Sottoscrivere tutti gli eventi e tutte le chiavi:

    PSUBSCRIBE __keyevent@0__:* __keyspace@0__:*
    
  • Sottoscrivere un tipo di evento specifico:

    SUBSCRIBE __keyevent@0__:set
    
  • Sottoscrivere una chiave specifica:

    SUBSCRIBE __keyspace@0__:mykey
    

Notifiche di test

Passare al terminale dell'operatore ed eseguire alcuni comandi Redis su una chiave di test.

SET mykey "hello"
EXPIRE mykey 10
DEL mykey

Il terminale del sottoscrittore mostra quali eventi si sono verificati e quali chiavi sono state interessate.

Nello screenshot seguente, il terminale del sottoscrittore si trova a sinistra, sottoscritto a tutti gli eventi e a tutte le chiavi, in modo da ricevere notifiche per tutti gli eventi che si verificano nella cache. Il terminale dell'operatore si trova a destra, dove i comandi Redis vengono eseguiti su diverse chiavi.

Sessione della CLI di Redis che mostra l'output della sottoscrizione alle notifiche del keyspace.

Aggiornare le impostazioni di notifica

È possibile modificare la configurazione di notifica keyspace in un secondo momento senza ricreare la cache.

  1. Aggiornare il valore notifyKeyspaceEvents in KeyspaceTemplate.json mantenendo CacheName e Region gli stessi.
  2. Ridistribuire il modello.
az deployment group create --resource-group exampleRG --template-file KeyspaceTemplate.json

La ridistribuzione aggiorna le impostazioni di notifica senza perdita di dati, che consente di abilitare, disabilitare o modificare gli eventi rilevati, ad esempio il passaggio da KEA a Ex a per tenere traccia solo degli eventi di scadenza.

Annotazioni

Se stai aggiornando le impostazioni di notifica su una cache esistente che non è stata distribuita tramite il modello ARM mostrato in precedenza, puoi creare un proprio modello per impostare la proprietà notifyKeyspaceEvents. Assicurarsi che il modello includa le configurazioni del cluster e del database della cache esistenti per evitare di sovrascrivere altre proprietà della cache.