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 discute como diagnosticar a perda parcial ou completa de dados que ocorre no Cache do Azure para Redis.
Importante
O Cache do Azure para Redis anunciou a linha do tempo de desativação para todos os SKUs. Recomendamos migrar suas instâncias do Cache do Azure para Redis para o Redis Gerenciado pelo Azure assim que possível.
Para obter mais detalhes sobre a aposentadoria:
Perda parcial de chave
O Cache do Azure para Redis não exclui chaves aleatoriamente depois que elas são armazenadas na memória, mas remove chaves em resposta a políticas de expiração, políticas de remoção e comandos explícitos de exclusão de chave. Você pode executar esses comandos no console ou por meio da CLI do Redis.
É possível que as chaves gravadas no nó primário em uma instância Premium ou Standard do Azure Redis não estejam disponíveis em uma réplica imediatamente. Os dados são replicados do primário para a réplica de maneira assíncrona e não bloqueante.
Se algumas chaves desaparecerem do cache, verifique as seguintes possíveis causas:
| Causa | Descrição |
|---|---|
| Expiração da chave | As chaves foram removidas devido ao tempo limite definido nelas. |
| Remoção de chave | As chaves foram removidas sob pressão da memória. |
| Exclusão de chave | As chaves foram removidas por comandos de exclusão explícitos. |
| Replicação assíncrona | As chaves não estavam disponíveis em uma réplica devido a atrasos na replicação de dados. |
Expiração da chave
O Cache do Azure para Redis removerá uma chave automaticamente se a chave tiver um tempo limite atribuído e esse período passar. Para obter mais informações sobre a expiração da chave Redis, consulte a documentação do comando EXPIRE do Redis. Os valores de tempo limite também podem ser definidos usando set,SETEX, GETSET e outros *STORE comandos.
Para obter estatísticas sobre 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
Remoção de chave
O Cache do Azure para Redis requer espaço de memória para armazenar dados e limpa chaves para liberar memória disponível quando necessário. Quando os valores used_memory ou used_memory_rss se aproximam da configuração maxmemory, o Azure Redis começa a despejar chaves da memória com base na política de cache.
Você pode monitorar o número de chaves removidas usando o comando INFO .
# Stats
evicted_keys:13224
Exclusão de chave
Os clientes Redis podem emitir os comandos REDis DEL ou HDEL para remover explicitamente as chaves do Azure Redis. Você pode acompanhar o número de operações de exclusão usando o comando INFO. Se DEL ou HDEL comandos foram chamados, eles sã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
As instâncias de nível Standard ou Premium do Cache do Azure para Redis são configuradas com um nó primário e pelo menos uma réplica. Os dados são copiados do principal para uma réplica de maneira assíncrona usando um processo em segundo plano.
A Replicação do Redis no site do Redis descreve como a replicação de dados Redis funciona em geral. Para cenários em que os clientes gravam com frequência no Redis, a perda parcial de dados pode ocorrer porque a replicação não foi projetada para ser instantânea.
Por exemplo, se o primário cair depois que um cliente gravar uma chave nele, mas antes que o processo em segundo plano tenha a chance de enviar essa chave para a réplica, a chave será perdida quando a réplica assumir o papel de novo primário.
Perda de chave completa
Se a maioria ou todas as chaves desaparecerem do cache, verifique as seguintes possíveis causas:
| Causa | Descrição |
|---|---|
| Liberação de chave | As chaves foram eliminadas manualmente. |
| Seleção de banco de dados incorreta | O Azure Redis está definido para usar um banco de dados não padrão. |
| Falha na instância do Redis | O servidor Redis não está disponível. |
Liberação de chave
Os clientes redis do Azure podem chamar o comando Redis FLUSHDB para remover todas as chaves em um único banco de dados ou FLUSHALL para remover todas as chaves de todos os bancos de dados em um cache Redis. Para descobrir se as chaves foram liberadas, use o comando INFO. A Commandstats seção mostra se um dos comandos FLUSH foi chamado.
# Commandstats
cmdstat_flushall:calls=2,usec=112,usec_per_call=56.00
cmdstat_flushdb:calls=1,usec=110,usec_per_call=52.00
Seleção de banco de dados incorreta
Cada banco de dados é uma unidade separada de maneira lógica e mantém um conjunto de dados diferente. O Cache do Azure para Redis usa o banco de dados db0 por padrão. Se você alternar para outro banco de dados, como db1 e tentar ler chaves dele, o Azure Redis não as encontrará. Use o comando Redis SELECT para procurar chaves em outros bancos de dados disponíveis.
Falha na instância do Redis
O Redis mantém os dados na memória nas VMs (máquinas virtuais) físicas ou virtuais que hospedam o cache Redis. Uma instância do Cache do Azure para Redis de camada básica é executada em apenas uma única VM (máquina virtual). Se essa VM falhar, todos os dados armazenados no cache serão perdidos.
Os caches nas camadas Standard e Premium oferecem maior resiliência em relação à perda de dados usando duas VMs em uma configuração replicada. Quando o nó principal nesse cache falha, o nó da réplica assume para atender aos dados automaticamente.
Essas VMs estão localizadas em domínios separados para falhas e atualizações, para minimizar a chance de ambas as VMs ficarem indisponíveis ao mesmo tempo. No entanto, se ocorrer uma falha grave no datacenter, ambas as VMs poderão ficar indisponíveis. Nesses casos raros, seus dados são perdidos. Considere usar a persistência de dados e a replicação geográfica para melhorar a proteção de dados contra falhas de infraestrutura.