Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo explica como diagnosticar a perda de dados real ou percebida que pode ocorrer no Redis Gerenciado do Azure.
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 Redis Gerenciado do Azure 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 de uma instância gerenciada do Redis no Azure podem não estar imediatamente disponíveis em uma réplica. Os dados são replicados do primário para a réplica de forma assíncrona e de forma não bloqueante.
Se as chaves desaparecerem do cache, verifique as seguintes possíveis causas:
| Motivo | Descrição |
|---|---|
| Expiração da chave | As chaves são removidas devido aos tempos limite definidos. |
| Remoção de chave | As chaves são removidas quando há pouca memória. |
| Exclusão de chave | Os clientes removem chaves executando comandos de exclusão explícitos. |
| 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 Redis Gerenciado do Azure remove uma chave automaticamente quando o tempo limite para essa chave passa. Para obter mais informações sobre o término da chave Redis, confira 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 seção Stats 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 do 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.
Remoção de chave
O Redis Gerenciado do Azure precisa de espaço de memória para armazenar dados. Ele remove as chaves de acesso para liberar memória quando houver necessidade. Quando os valores used_memory ou used_memory_rss valores no comando INFO aproximam-se da configuração MaxMemory definida, o Redis Gerenciado do Azure inicia a remoção de 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 Redis Gerenciado do Azure. Acompanhe 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 Redis Gerenciado do Azure, 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ê poderá sofrer 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 gravar uma chave, mas antes que o processo de fundo a replique, a chave será perdida quando a réplica se tornar o novo primário.
Perda grande ou completa de chaves
Se a maioria ou todas as chaves desaparecerem do cache, verifique estas possíveis causas:
| Motivo | Descrição |
|---|---|
| Liberação de chave | Alguém eliminou as chaves manualmente. |
| Falha na instância do Redis | O servidor Redis não está disponível. |
Liberação de chave
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 comandos FLUSH é 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 do Redis
Redis é um armazenamento 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 à zona por padrão. Quando o shard principal nesse cache falha, o shard da réplica assume para atender aos dados automaticamente. Essas VMs estão em domínios separados para falhas e atualizações, o que minimiza a chance de ambos ficarem indisponíveis ao mesmo tempo. Se ocorrer uma interrupção importante do data center, as VMs ainda poderão ficar inoperantes. Nesses casos raros, você perde seus dados.
Use a persistência de dados do Redis e a replicação geográfica para proteger melhor seus dados contra essas falhas de infraestrutura.