Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
Redis Insight ou
redis-cliferramenta de linha de comandos. Para os passos de instalação, consulte Use ferramentas de cliente para gerir dados em Azure Managed Redis.Observação
Quando utiliza ferramentas de cliente Redis, recomendamos utilizar a autenticação Microsoft Entra ID para o Azure Managed Redis, quando disponível.
Compreensão dos templates do Azure Resource Manager (ARM). Para mais informações, consulte Azure Resource Manager documentação.
Para Azure CLI:
Usa o ambiente Bash em Azure Cloud Shell. Para mais informações, consulte Comece com Azure Cloud Shell.
Se preferires executar comandos de referência da CLI localmente, instala Azure CLI. Se estiveres a correr no Windows ou macOS, considera executar Azure CLI num contentor Docker. Para mais informações, veja Como executar o Azure CLI num contentor Docker.
Se estiveres a usar uma instalação local, inicia sessão na Azure CLI usando o comando az login. Para concluir o processo de autenticação, siga os passos exibidos no seu terminal. Para outras opções de iniciação de sessão, veja Autenticar para Azure usando Azure CLI.
Quando for solicitado, instale a extensão Azure CLI na primeira utilização. Para mais informações sobre extensões, veja Usar e gerir extensões com a Azure CLI.
Execute az version para descobrir a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute az upgrade.
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__:setSubscreva 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.
Atualizar definições de notificação
Pode alterar a configuração de notificações de keyspace mais tarde sem recriar a cache.
- Atualize o valor de
notifyKeyspaceEventsemKeyspaceTemplate.json, mantendoCacheNameeRegioniguais. - 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.