Habilitar notificações do keyspace do Redis (versão prévia)

As notificações do keyspace do Redis permitem que os clientes assinem canais Pub/Sub para receber eventos que afetam o conjunto de dados do Redis de alguma forma. Use as notificações de keyspace (versão preliminar) para monitorar alterações em chaves e valores em seu cache do Redis Gerenciado do Azure.

Este artigo mostra como implantar um cache com notificações de keyspace habilitadas, conectar clientes usando comandos Redis, assinar canais de notificação e testar os eventos resultantes.

Pré-requisitos

Implantar um cache com notificações de keyspace habilitadas

Neste exemplo, utilize um modelo do Azure Resource Manager (ARM) e a CLI do Azure para implantar um cache do Redis Gerenciado do Azure com notificações de keyspace habilitadas.

Modifique os parâmetros CacheName e Region no modelo a seguir e salve o arquivo como KeyspaceTemplate.json.

Observação

O notifyKeyspaceEvents valor de "KEA" permite notificações de keyspace 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 keyspace do Redis para obter 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"
            }
        }
    ]
}

Implante o modelo usando o comando az deployment group create Azure CLI. No exemplo a seguir, a implantação está no grupo de recursos exampleRG .

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

Conectar clientes Redis

Usando o Redis Insight ou redis-cli, abra duas sessões da CLI e conecte ambos os clientes ao cache.

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

Verificar e assinar eventos

Em qualquer terminal, confirme se a cadeia de caracteres de notificação está configurada.

CONFIG GET notify-keyspace-events

No terminal do assinante, escolha o padrão de assinatura que corresponde aos eventos que você deseja observar. Os exemplos são os seguintes:

  • Assine todos os eventos e todas as chaves:

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

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

    SUBSCRIBE __keyspace@0__:mykey
    

Notificações de teste

Alterne para o terminal do operador e execute alguns comandos no Redis usando uma chave de teste.

SET mykey "hello"
EXPIRE mykey 10
DEL mykey

O terminal do assinante mostra quais eventos ocorreram e quais chaves foram afetadas.

Na captura de tela a seguir, o terminal do assinante está à esquerda, inscrito em todos os eventos e todas as chaves, portanto, recebe notificações para todos os eventos que ocorrem no cache. O terminal do operador está à direita, onde os comandos Redis são emitidos para várias chaves.

Sessão da CLI do Redis exibindo a saída da assinatura de notificações de keyspace.

Atualizar configurações de notificação

Você pode alterar a configuração de notificação do keyspace posteriormente sem recriar o cache.

  1. Atualize o valor de notifyKeyspaceEvents em KeyspaceTemplate.json e mantenha CacheName e Region inalterados.
  2. Reimplantar o modelo.
az deployment group create --resource-group exampleRG --template-file KeyspaceTemplate.json

A reimplantação atualiza as configurações de notificação sem perda de dados, o que permite habilitar, desabilitar ou alterar os eventos que são rastreados, como mover de KEA para Ex para acompanhar somente eventos de expiração.

Observação

Se você estiver atualizando as configurações de notificação em um cache existente que não foi implantado por meio do modelo do ARM mostrado anteriormente, poderá configurar seu próprio modelo para definir a notifyKeyspaceEvents propriedade. Verifique se o modelo inclui as configurações existentes do cluster de cache e do banco de dados para evitar a substituição de outras propriedades de cache.