Les clés volumineuses et les clés fréquemment accédées peuvent dégrader les performances des services, provoquer des délais d'attente des requêtes ou même entraîner des pannes système. Cette rubrique explique comment identifier et optimiser rapidement ces types de clés. Elle analyse également leurs causes et leurs effets, et fournit des mesures préventives pour réduire leur impact sur votre activité.
Étape 1 : Identifier rapidement les clés volumineuses et les clés fréquemment accédées
Outils de la console Alibaba Cloud
Tair et Redis proposent les fonctionnalités Statistiques des principales clés (Top Key Statistics) et Analyse complète hors ligne des clés (Offline Full Key Analysis) dans la console pour vous aider à repérer rapidement les clés volumineuses et les clés fréquemment accédées.
Méthode | Limites | Description | Procédure |
Statistiques des principales clés (Recommandé) | Cette fonctionnalité est prise en charge uniquement par Redis Open-Source Edition 5.0 ou version ultérieure, ainsi que par les instances optimisées pour la mémoire et les instances à mémoire persistante de Tair (Enterprise Edition). |
|
|
Cette fonctionnalité n'est pas prise en charge pour les instances basées sur disque. |
|
Si votre instance ne prend pas en charge ces fonctionnalités, utilisez les méthodes suivantes.
Autres méthodes pour identifier les clés volumineuses et les clés fréquemment accédées
Étape 2 : Optimiser les clés volumineuses et les clés fréquemment accédées
Clés volumineuses
Solution | Scénarios | Actions recommandées |
Nettoyez les données expirées | Une grande quantité de données expirées s'est accumulée, par exemple des données incrémentielles non nettoyées dans un HASH. | Utilisez la commande HSCAN conjointement avec la commande HDEL pour nettoyer les données invalides. Cela évite de bloquer l'instance, ce qui pourrait se produire si vous nettoyiez une grande quantité de données en une seule fois. |
Compressez les clés volumineuses | Données compressibles telles que les textes JSON et XML, y compris les journaux et les configurations. |
Remarque Les opérations de compression et de décompression consomment des ressources CPU supplémentaires et peuvent affecter les performances de traitement. |
Divisez les clés volumineuses | Structures de données HASH, ZSET et autres fréquemment accédées, telles que les classements. |
La division des clés volumineuses permet d'éviter efficacement le déséquilibre des données. |
Déchargez les clés volumineuses | Fichiers volumineux ou objets binurs volumineux (BLOB) de type String. | Stockez les données inappropriées dans d'autres systèmes de stockage, tels qu'OSS, et supprimez-les de l'instance.
|
Clés fréquemment accédées
Solution | Scénarios | Actions recommandées |
Répliquez les clés fréquemment accédées dans une architecture en cluster | Une clé fréquemment accédée est stockée intégralement dans un seul shard et les requêtes ne peuvent pas être distribuées en migrant partiellement les données. | Copiez la clé fréquemment accédée et migrez les réplicas vers d'autres shards de données. Par exemple, copiez une clé fréquemment accédée nommée Remarque L'inconvénient de cette solution est que vous devez modifier votre code pour gérer plusieurs réplicas, et il est difficile de garantir la cohérence des données entre eux. Par exemple, une opération de mise à jour doit être synchronisée sur tous les réplicas. Utilisez cette solution comme mesure temporaire pour atténuer les problèmes urgents. |
Charges de travail avec beaucoup de lectures et peu d'écritures | Si la charge des requêtes de lecture reste élevée après l'activation de cette fonctionnalité, ajoutez davantage de nœuds en lecture seule pour alléger davantage la charge. Remarque Dans les scénarios où le volume de requêtes est extrêmement élevé, la synchronisation primaire/secondaire aura inévitablement une latence, ce qui peut entraîner la lecture de données obsolètes. Par conséquent, n'activez pas la séparation lecture/écriture dans les scénarios soumis à une forte pression en lecture et en écriture et exigeant une stricte cohérence des données. |
Étape 3 : Empêcher les clés volumineuses et les clés fréquemment accédées d'affecter votre activité
Causes des clés volumineuses et des clés fréquemment accédées
Dans Tair et Redis, l'unité minimale de distribution des données est une clé. Une clé unique est stockée dans un shard de données spécifique et n'est pas divisée. Des facteurs tels qu'une planification métier insuffisante, l'accumulation de données invalides et des augmentations soudaines du volume d'accès peuvent tous entraîner la génération de clés volumineuses et de clés fréquemment accédées dans une instance. Voici quelques exemples :
Catégorie | Cause |
Clé volumineuse |
|
Clé fréquemment accédée |
|
Effets des clés volumineuses et des clés fréquemment accédées
Catégorie | Effet |
Clé volumineuse |
|
Clé fréquemment accédée |
|
Stratégies de prévention
|
Stratégie |
Description |
|
Définissez des seuils d'alerte raisonnables pour des métriques telles que l'utilisation du processeur, l'utilisation de la mémoire et les connexions. Par exemple, configurez une alerte lorsque l'utilisation de la mémoire dépasse 70 % ou augmente de plus de 20 % en une heure. Lorsqu'une alerte est déclenchée, suivez les instructions des étapes 1 et 2 de cette rubrique pour localiser et optimiser les clés volumineuses et les clés fréquemment accédées. Cela permet de résoudre le problème avant qu'il n'affecte votre activité. |
|
|
Utilisez Tair (Enterprise Edition) pour éviter de nettoyer les données invalides |
Pour les scénarios impliquant des clés volumineuses de type hash, Tair (Enterprise Edition) propose une structure de données améliorée, TairHash. Elle permet de définir une durée de validité et une version pour chaque champ. En utilisant correctement TairHash, vous pouvez réduire considérablement la charge opérationnelle, simplifier la complexité du code métier et gérer efficacement les problèmes causés par les clés volumineuses et les clés fréquemment accédées. |