Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment diagnostiquer la perte de données réelle ou perçue qui peut se produire dans Azure Managed Redis.
Remarque
Certaines étapes de résolution des problèmes décrites dans ce guide incluent des instructions pour exécuter des commandes Redis et surveiller les métriques de performances. Pour plus d’informations, consultez les articles du contenu associé.
Perte partielle des clés
Azure Managed Redis ne supprime pas de manière aléatoire les clés après les avoir stockées en mémoire. Il supprime les clés en raison de stratégies d’expiration, de stratégies d’éviction ou de commandes de suppression de clés explicites. Exécutez ces commandes à l’aide de l’interface CLI. Les clés écrites dans le nœud principal d’une instance Redis managée Azure peuvent ne pas être disponibles immédiatement sur un réplica. Les données sont répliquées de la base de données primaire vers le réplica de manière asynchrone et de manière non bloquante.
Si les clés disparaissent de votre cache, vérifiez les causes possibles suivantes :
| La cause | Descriptif |
|---|---|
| Expiration des clés | Les clés sont supprimées en raison des délais d’attente définis pour elles. |
| Éviction des clés | Les clés sont supprimées lorsque la mémoire est faible. |
| Suppression des clés | Les clients suppriment des clés en exécutant des commandes de suppression explicites. |
| Réplication asynchrone | Les clés ne sont pas disponibles sur une réplique en raison de retards de réplication de données. |
Expiration des clés
Azure Managed Redis supprime automatiquement une clé lorsque le délai d’expiration de cette clé passe. Pour en savoir plus sur l’expiration des clés Redis, consultez la documentation relative à la commande EXPIRE. Vous pouvez également définir des valeurs de délai d’attente à l’aide des commandes SET, SETEX, GETSET et autres commandes *STORE .
Pour voir le nombre de clés expirées, utilisez la commande INFO . La section Stats montre le nombre total de clés arrivées à expiration. La Keyspace section fournit plus d’informations sur le nombre de clés avec des délais d’attente et la valeur moyenne du délai d’expiration.
# Stats
expired_keys:46583
# Keyspace
db0:keys=3450,expires=2,avg_ttl=91861015336
Vérifiez les métriques de diagnostic de votre cache pour voir s’il existe une corrélation entre le moment où la clé est manquante et un pic de clés supprimées.
Éviction des clés
Azure Managed Redis a besoin d’un espace mémoire pour stocker des données. Il supprime les clés pour libérer de la mémoire si nécessaire. Lorsque les valeurs used_memory ou used_memory_rss dans la commande INFO s’approchent du paramètre maxmemory configuré, Azure Managed Redis commence à supprimer des clés de la mémoire en fonction de la stratégie de cache.
Surveillez le nombre de clés supprimées à l’aide de la commande INFO :
# Stats
evicted_keys:13224
Suppression des clés
Les clients Redis exécutent la commande DEL ou HDEL pour supprimer les clés d’Azure Managed Redis. Suivez le nombre d’opérations de suppression à l’aide de la commande INFO . Si les commandes DEL ou HDEL sont exécutées, elles sont répertoriées dans la Commandstats section.
# Commandstats
cmdstat_del:calls=2,usec=90,usec_per_call=45.00
cmdstat_hdel:calls=1,usec=47,usec_per_call=47.00
Réplication asynchrone
Lorsque vous activez la haute disponibilité dans Azure Managed Redis, le service crée un nœud principal et au moins un réplica. Le système copie les données du système principal vers le réplica de manière asynchrone par un processus en arrière-plan. Pour plus d’informations, consultez la documentation de réplication Redis .
Étant donné que la réplication n’est pas instantanée, vous pouvez rencontrer une perte de données partielle si les clients écrivent fréquemment dans Redis. Par exemple, si le nœud principal échoue après qu’un client écrit une clé, mais avant que le processus en arrière-plan ne la réplique, la clé est perdue lorsque la réplique devient la nouvelle réplique principale.
Perte majeure ou totale des clés
Si la plupart ou toutes les clés disparaissent de votre cache, vérifiez les causes possibles :
| La cause | Descriptif |
|---|---|
| Vidage des clés | Quelqu’un a vidé les clés manuellement. |
| Échec de l’instance de Redis | Le serveur Redis n’est pas disponible. |
Vidage des clés
Les clients peuvent appeler la commande FLUSHDB ou FLUSHALL pour supprimer toutes les clés de l’instance Redis. Pour vérifier si les clés sont vidées, utilisez la commande INFO . La section Commandstats affiche si l’une ou l’autre des commandes FLUSH s'exécute :
# Commandstats
cmdstat_flushall:calls=2,usec=112,usec_per_call=56.00
cmdstat_flushdb:calls=1,usec=110,usec_per_call=52.00
Échec de l’instance de Redis
Redis est un magasin de données en mémoire. Les données restent sur les machines physiques ou virtuelles qui hébergent le cache Redis. Les caches Redis managés Azure offrent une résilience élevée contre la perte de données en fournissant par défaut des caches résilients à la zone. Lorsque la partition principale de ce cache échoue, la partition du réplica prend automatiquement en charge le service des données. Ces machines virtuelles se trouvent dans des domaines distincts pour les erreurs et les mises à jour, ce qui réduit le risque d’indisponibilité de ces deux machines virtuelles en même temps. Si une panne majeure du centre de données se produit, les machines virtuelles peuvent toutes tomber en panne ensemble. Dans ces rares cas, vous perdez vos données.
Utilisez la persistance des données Redis et la géoréplication pour mieux protéger vos données contre ces défaillances d’infrastructure.