Ativar notificações de espaço de chave do Redis (versão prévia)

As notificações do espaço de chaves do Redis permitem que os clientes subscrevam canais Pub/Sub para receber eventos que afetam o conjunto de dados do Redis de alguma forma. Use as notificações de espaço de chaves (pré-visualização) para monitorizar alterações às chaves e valores na sua cache Azure Managed Redis.

Este artigo mostra como implementar uma cache com notificações em keyspace ativadas, ligar clientes usando comandos Redis, subscrever canais de notificação e testar os eventos resultantes.

Pré-requisitos

Desenvolver uma cache com notificações de espaço de chave ativadas

Neste exemplo, utilize um modelo Azure Resource Manager (ARM) e a Azure CLI para implementar uma cache Azure Managed Redis com notificações de keyspace ativadas.

Modifique os CacheName parâmetros e Region no modelo seguinte e guarde o ficheiro como KeyspaceTemplate.json.

Observação

O notifyKeyspaceEvents valor de "KEA" permite notificações no espaço de chave para a maioria dos eventos. Pelo menos "K" OU "E" é necessário para receber notificações de keyspace. Consulte a documentação de notificações do espaço de chaves Redis para mais informações sobre os diferentes tipos de eventos e como configurar notificações para eles.

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

Implemente o template usando o comando az deployment group create Azure CLI. No exemplo seguinte, a implementação está no grupo de recursos exampleRG .

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

Conectar Clientes Redis

Usando Redis Insight ou redis-cli, abre duas sessões CLI e liga ambos os clientes à cache.

Utilize um terminal como assinante que recebe as notificações de keyspace e o outro como operador que executa os comandos Redis.

Verifique e subscreva os eventos

Em qualquer um dos terminais, confirme que a cadeia de notificações está configurada.

CONFIG GET notify-keyspace-events

No terminal do assinante, escolha o padrão de subscrição que corresponde aos eventos que pretende observar. Seguem-se alguns exemplos:

  • Subscreva todos os eventos e todas as chaves:

    PSUBSCRIBE __keyevent@0__:* __keyspace@0__:*
    
  • Subscreva um tipo específico de evento:

    SUBSCRIBE __keyevent@0__:set
    
  • Subscreva uma chave específica:

    SUBSCRIBE __keyspace@0__:mykey
    

Notificações de testes

Muda para o terminal do operador e executa alguns comandos Redis contra uma chave de teste.

SET mykey "hello"
EXPIRE mykey 10
DEL mykey

O terminal do assinante mostra quais os eventos que ocorreram e quais as chaves afetadas.

Na captura de ecrã seguinte, o terminal do assinante está à esquerda, subscrito a todos os eventos e chaves, por isso recebe notificações de todos os eventos que ocorrem na cache. O terminal do operador está à direita, onde são emitidos comandos Redis sobre várias teclas.

Sessão de CLI Redis a mostrar a saída da subscrição da notificação em keyspace.

Atualizar definições de notificação

Pode alterar a configuração de notificações de keyspace mais tarde sem recriar a cache.

  1. Atualize o valor de notifyKeyspaceEvents em KeyspaceTemplate.json, mantendo CacheName e Region iguais.
  2. Reimplante o modelo.
az deployment group create --resource-group exampleRG --template-file KeyspaceTemplate.json

A reimplantação atualiza as definições de notificação sem perda de dados, o que permite ativar, desativar ou alterar os eventos que são rastreados, como mover de KEA para Ex para acompanhar apenas eventos de expiração.

Observação

Se estiver a atualizar as definições de notificação numa cache existente que não foi implementada através do modelo ARM mostrado anteriormente, pode configurar o seu próprio modelo para definir a notifyKeyspaceEvents propriedade. Certifique-se de que o modelo inclui as configurações existentes do cluster de cache e da base de dados para evitar sobrescrever outras propriedades da cache.