Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo explica como diagnosticar a perda de dados real ou percebida que pode ocorrer no Azure Managed Redis.
Observação
Algumas etapas de solução de problemas neste guia incluem instruções para executar comandos Redis e monitorar métricas de desempenho. Para obter mais informações, consulte os artigos em Conteúdo relacionado.
Perda parcial de chaves
O Azure Managed Redis não exclui chaves aleatoriamente depois de armazená-las na memória. Ele remove chaves devido a políticas de expiração, políticas de remoção ou comandos explícitos de exclusão de chave. Execute esses comandos usando a CLI. As chaves gravadas no nó primário numa instância de Azure Managed Redis podem não estar imediatamente disponíveis numa réplica. Os dados são replicados do primário para a réplica de forma assíncrona e sem bloqueios.
Se as chaves desaparecerem do cache, verifique as seguintes causas possíveis:
| Motivo | Descrição |
|---|---|
| Expiração da chave | As chaves são removidas devido a limites de tempo definidos para elas. |
| Despejo de chaves | As chaves são removidas quando a memória está baixa. |
| Exclusão de chave | Os clientes removem chaves executando comandos explícitos de exclusão. |
| Replicação assíncrona | As chaves não estão disponíveis em uma réplica devido a atrasos na replicação de dados. |
Expiração da chave
O Azure Managed Redis remove uma chave automaticamente quando o tempo limite dessa chave passa. Para obter mais informações sobre a expiração da chave Redis, consulte a documentação do comando EXPIRE . Você também pode definir valores de tempo limite usando os comandos SET, SETEX, GETSET e outros * STORE .
Para ver quantas chaves expiraram, use o comando INFO . A Stats seção mostra o número total de chaves expiradas. A Keyspace seção fornece mais informações sobre o número de chaves com tempos limite e o valor médio de tempo limite.
# Stats
expired_keys:46583
# Keyspace
db0:keys=3450,expires=2,avg_ttl=91861015336
Verifique as métricas de diagnóstico do cache para ver se há uma correlação entre quando a chave desapareceu e um pico nas chaves removidas.
Despejo de chaves
O Azure Managed Redis precisa de espaço de memória para armazenar dados. Ele remove as chaves para liberar memória quando necessário. Quando os valores used_memory ou used_memory_rss no comando INFO se aproximam da configuração maxmemory configurada, o Azure Managed Redis começa a remover chaves da memória com base na política de cache.
Monitore o número de chaves removidas usando o comando INFO :
# Stats
evicted_keys:13224
Exclusão de chave
Os clientes Redis executam o comando DEL ou HDEL para remover chaves do Azure Managed Redis. Controle o número de operações de exclusão usando o comando INFO . Se os comandos DEL ou HDEL forem executados, eles serão listados na Commandstats seção .
# Commandstats
cmdstat_del:calls=2,usec=90,usec_per_call=45.00
cmdstat_hdel:calls=1,usec=47,usec_per_call=47.00
Replicação assíncrona
Quando você habilita a alta disponibilidade no Azure Managed Redis, o serviço cria um nó primário e pelo menos uma réplica. O sistema copia dados do primário para a réplica de forma assíncrona usando um processo em segundo plano. Consulte a documentação de replicação do Redis para obter mais detalhes.
Como a replicação não é instantânea, você pode ter perda parcial de dados se os clientes gravarem no Redis com frequência. Por exemplo, se o nó primário falhar depois que um cliente grava uma chave, mas antes que o processo em segundo plano a replique, a chave será perdida quando a réplica se tornar o novo nó primário.
Perda de chaves importante ou completa
Se a maioria ou todas as chaves desaparecerem do cache, verifique estas possíveis causas:
| Motivo | Descrição |
|---|---|
| Lavagem de chaves | Alguém eliminou as chaves manualmente. |
| Falha na instância do Redis | O servidor Redis não está disponível. |
Lavagem de chaves
Os clientes podem chamar o comando FLUSHDB ou FLUSHALL para remover todas as chaves da instância do Redis. Para verificar se as chaves estão limpas, use o comando INFO. A Commandstats seção mostra se um dos FLUSH comandos é executado:
# Commandstats
cmdstat_flushall:calls=2,usec=112,usec_per_call=56.00
cmdstat_flushdb:calls=1,usec=110,usec_per_call=52.00
Falha na instância de Redis
O Redis é um arquivo de dados na memória. Os dados permanecem nas máquinas físicas ou virtuais (VM) que hospedam o cache Redis. Os caches Redis gerenciados do Azure oferecem alta resiliência contra perda de dados, fornecendo caches resilientes de zona por padrão. Quando o fragmento principal nesse cache falha, o fragmento de réplica assume automaticamente o controle para servir dados. Essas VMs estão em domínios separados para falhas e atualizações, o que minimiza a chance de ambas ficarem indisponíveis ao mesmo tempo. ** Se ocorrer uma grande falha no data center, as VMs ainda podem falhar em simultâneo. Nestes casos raros, perde os seus dados.
Use a persistência de dados Redis e a replicação geográfica para proteger melhor seus dados contra essas falhas de infraestrutura.