Maison  >  Article  >  base de données  >  Partagez quelques outils d'exploitation et de maintenance Redis utiles

Partagez quelques outils d'exploitation et de maintenance Redis utiles

青灯夜游
青灯夜游avant
2021-12-07 09:39:462921parcourir

Cet article partagera avec vous quelques outils d'exploitation et de maintenance Redis utiles pour voir comment surveiller l'état de fonctionnement, la migration des données et la gestion du cluster. J'espère qu'il vous sera utile !

Partagez quelques outils d'exploitation et de maintenance Redis utiles

Lorsque nous appliquons Redis, nous sommes souvent confrontés à des travaux d'exploitation et de maintenance, notamment Redis exécutant la surveillance de l'état, la migration des données, le déploiement et l'exploitation de clusters maître-esclave et de clusters de découpage. Ensuite, je vais vous présenter quelques outils sous ces trois aspects. Apprenons d'abord les outils pour surveiller l'état d'exécution en temps réel de Redis. Ces outils utilisent tous une commande de surveillance fournie par Redis : INFO. [Recommandations associées : Tutoriel vidéo Redis]

La commande de surveillance la plus basique : commande INFO

La commande INFO fournie par Redis elle-même renverra des informations de surveillance riches sur l'exécution de l'instance. Cette commande est la base de l'outil de surveillance Redis.

Lorsque vous utilisez la commande INFO, vous pouvez prendre une section de paramètres. En conséquence, la commande INFO renverra également différents types d'informations de surveillance. Je divise les informations renvoyées par la commande INFO en 5 catégories principales. Certaines catégories incluent différents contenus de surveillance, comme indiqué dans le tableau suivant :

Partagez quelques outils dexploitation et de maintenance Redis utiles

Lors de la surveillance de l'état d'exécution de Redis, les résultats renvoyés par la commande INFO sont très. utile. . Si vous souhaitez connaître la signification détaillée des résultats renvoyés par tous les paramètres de la commande INFO, vous pouvez consulter l'introduction de Redissite officiel. Ici, je vais vous donner quelques paramètres sur lesquels il faut se concentrer lors de l'exploitation et de la maintenance, ainsi que leurs résultats de retour importants.

Tout d'abord, Que vous exécutiez une seule instance ou un cluster, je vous suggère de vous concentrer sur les résultats de retour des quatre paramètres stat, commandstat, cpu et memory, qui incluent l'exécution de la commande (comme le temps d'exécution de la commande et temps d'exécution, ressources CPU utilisées par la commande), utilisation des ressources mémoire (telle que l'utilisation de la mémoire, le taux de fragmentation de la mémoire), utilisation des ressources CPU, etc. Cela peut nous aider à déterminer l'état d'exécution et la consommation des ressources du exemple.

De plus, lorsque vous activez la fonction RDB ou AOF, vous devez vous concentrer sur le résultat de retour du paramètre de persistance, grâce auquel vous pouvez visualiser l'état d'exécution du RDB ou de l'AOF.

Si vous utilisez un cluster maître-esclave, vous devez vous concentrer sur le résultat de retour du paramètre de réplication, qui contient l'état en temps réel de la synchronisation maître-esclave.

Cependant, la commande INFO ne fournit que les résultats de surveillance sous forme de texte et n'est pas visualisée. Par conséquent, dans des applications pratiques, nous pouvons également utiliser certains outils open source tiers pour visualiser les résultats renvoyés par la commande INFO. Ensuite, je parlerai de Prometheus, qui peut visualiser les résultats statistiques de Redis via des plug-ins.

Redis-exporter monitoring for Prometheus

Prometheus est un cadre de surveillance et d'alarme de système open source. Sa fonction principale est d'extraire les données de surveillance du système surveillé et de les combiner avec l'outil Grafana pour l'affichage visuel. De plus, les données de surveillance peuvent être enregistrées dans une base de données de séries chronologiques pour faciliter les requêtes historiques par le personnel d'exploitation et de maintenance. Dans le même temps, Prometheus détectera si les indicateurs de surveillance du système dépassent le seuil prédéfini. Une fois le seuil dépassé, Prometheus déclenchera une alarme.

Ces fonctions sont très importantes pour la gestion quotidienne du fonctionnement et de la maintenance du système. Prometheus a implémenté un cadre d'outils pour utiliser ces fonctions. Tant que nous pouvons obtenir des données de surveillance du système surveillé, nous pouvons utiliser Prometheus pour mettre en œuvre la surveillance du fonctionnement et de la maintenance.

Prometheus fournit simplement des fonctions de plug-in pour surveiller un système. Nous appelons des exportateurs de plug-ins. Chaque exportateur est en fait un composant qui collecte des données de surveillance. Le format des données collectées par l'exportateur répond aux exigences de Prometheus. Une fois que Prometheus a obtenu les données, elles peuvent être affichées et enregistrées.

Redis-exporter est utilisé pour surveiller Redis. Il fournit l'état de fonctionnement et diverses informations statistiques surveillées par la commande INFO à Prometheus pour l'affichage visuel et les paramètres d'alarme. Actuellement, Redis-exporter peut prendre en charge les versions Redis 2.0 à 6.0 et dispose d'une large gamme d'applications.

En plus d'obtenir l'état d'exécution de l'instance Redis, Redis-exporter peut également surveiller la taille des paires clé-valeur et le nombre d'éléments de données de type collection. Cela peut être réalisé en utilisant l'option de ligne de commande check-keys. lors de l'exécution de Redis-exporter.

De plus, nous pouvons développer un script Lua pour personnaliser la collecte des données de surveillance requises. Ensuite, nous utilisons l'option de ligne de commande scripts pour permettre à Redis-exporter d'exécuter ce script spécifique, afin qu'il puisse répondre aux divers besoins de surveillance de la couche métier.

Enfin, j'aimerais partager deux autres gadgets avec vous : redis-stat et Redis Live. Comparés à Redis-exporter, ces deux outils de surveillance sont légers. Ils sont développés respectivement en Ruby et Python et affichent également visuellement les informations sur l'état d'exécution de l'instance fournies par la commande INFO. Bien que ces deux outils soient rarement mis à jour actuellement, ils constituent de bonnes références si vous souhaitez développer vos propres outils de surveillance Redis.

En plus de surveiller l'état de fonctionnement de Redis, une autre tâche courante d'exploitation et de maintenance est la migration des données. Découvrons ensuite les outils de migration de données.

Outil de migration de données Redis-shake

Parfois, nous devons migrer des données entre différentes instances. Actuellement, l'un des outils de migration de données les plus couramment utilisés est Redis-shake, qui est un outil développé par les équipes Alibaba Cloud Redis et MongoDB pour la synchronisation des données Redis.

Le principe de fonctionnement de base de Redis-shake est de démarrer en premier le processus Redis-shake, qui simule une instance Redis. Ensuite, le processus Redis-shake et l'instance source à partir de laquelle les données sont migrées effectuent une synchronisation complète des données.

Ce processus est similaire à la synchronisation complète des instances maître-esclave Redis.

L'instance source est équivalente à la bibliothèque principale et Redis-shake est équivalent à la bibliothèque esclave. L'instance source transfère d'abord le fichier RDB vers Redis-shake, et Redis-shake enverra le fichier RDB à l'instance de destination. Ensuite, l'instance source enverra les commandes incrémentielles à Redis-shake, et Redis-shake se charge de synchroniser ces commandes incrémentielles avec l'instance de destination.

L'image suivante montre le processus de migration des données de Redis-shake :

Partagez quelques outils dexploitation et de maintenance Redis utiles

L'un des grands avantages de Redis-shake est qu'il prend en charge plusieurs types de migration.

Tout d'abord, il prend en charge à la fois la migration de données entre des instances uniques et la migration de données de cluster à cluster.

Deuxièmement, certains clusters de découpage Redis (tels que Codis) utiliseront un proxy pour recevoir les opérations de requête, et Redis-shake prend également en charge la migration de données avec proxy.

De plus, étant donné que Redis-shake est développé par l'équipe Alibaba Cloud, en plus de prendre en charge la version open source Redis, Redis-shake prend également en charge la migration des instances Redis sous le cloud et des instances Redis sur le cloud, ce qui peut nous aider à atteindre l'objectif de déplacer les services Redis vers le cloud.

Après la migration des données, nous devons généralement comparer si les données de l'instance source et de l'instance de destination sont cohérentes. S'il y a des données incohérentes, nous devons les rechercher et les supprimer de l'instance de destination, ou migrer à nouveau les données incohérentes.

Ici, je vais vous présenter un autre outil de comparaison de cohérence des données, qui est Redis-full-check développé par l'équipe Alibaba Cloud.

Le principe de fonctionnement de Redis-full-check est très simple : comparer entièrement les données de l'instance source et de l'instance de destination pour terminer la vérification des données. Cependant, afin de réduire la surcharge de comparaison liée à la vérification des données, Redis-full-check utilise une méthode de comparaison à plusieurs tours.

Lors du premier cycle de vérification, Redis-full-check trouvera toutes les clés de l'instance source, puis trouvera les valeurs correspondantes de l'instance source et de l'instance de destination à des fins de comparaison. Après la première comparaison, redis-full-check enregistrera les données de l'instance de destination qui sont incohérentes avec l'instance source dans la base de données sqlite.

À partir du deuxième tour de vérification, Redis-full-check compare uniquement les données incohérentes enregistrées dans la base de données après la fin du tour précédent.

Afin d'éviter d'affecter le traitement normal des requêtes de l'instance, Redis-full-check s'arrêtera pendant un certain temps après chaque tour de comparaison. Au fur et à mesure de la synchronisation incrémentielle Redis-shake, les données incohérentes dans l'instance source et l'instance de destination diminueront progressivement, nous n'avons donc pas besoin de nombreux cycles de vérification et de comparaison.

Nous pouvons définir nous-mêmes le nombre de tours de comparaison. La méthode spécifique consiste à définir la valeur du paramètre comparetimes sur le nombre de tours que nous souhaitons comparer lors de l'exécution de la commande redis-full-check.

Une fois tous les tours de comparaison terminés, les données enregistrées dans la base de données constitueront le résultat final de la différence entre l'instance source et l'instance de destination.

Il y a quelque chose à noter ici. Redis-full-check propose trois modes de comparaison, que nous pouvons définir via le paramètre comparemode. Le paramètre comparemode a trois valeurs, les significations sont les suivantes :

  • KeyOutline, compare uniquement si la valeur de la clé est égale ;
  • ValueOutline, compare uniquement si la longueur de la valeur est égale ;
  • FullValue, compare si la valeur est égale ; la valeur clé, la longueur de la valeur et la valeur valeur sont égales.

Lorsque nous appliquons Redis-full-check, nous pouvons choisir le mode de comparaison correspondant en fonction des exigences commerciales en matière de cohérence des données. Si l'exigence de cohérence est élevée, définissez le paramètre comparemode sur FullValue.

D'accord, enfin, laissez-moi vous présenter CacheCloud, un outil de gestion de l'exploitation et de la maintenance du cluster Redis.

L'outil de gestion de cluster CacheCloud

CacheCloud est une plateforme cloud développée par Sohu pour la gestion de l'exploitation et de la maintenance de Redis. Elle implémente le déploiement et la gestion automatiques de clusters maître-esclave, de clusters sentinelles et de cluster Redis. Operate de la plateforme sur l'interface de gestion.

Pour les besoins courants d'exploitation et de maintenance du cluster, CacheCloud propose 5 opérations d'exploitation et de maintenance.

  • Instance hors ligne : fermez l'instance et les tâches de surveillance associées.
  • Instance en ligne : redémarrez l'instance hors ligne et surveillez-la.
  • Ajouter un nœud esclave : ajoutez un nœud esclave au nœud maître dans le cluster maître-esclave.
  • Failover : effectuez manuellement le basculement des nœuds maître et esclave du cluster Redis.
  • Gestion de la configuration : une fois que l'utilisateur a soumis un bon de travail pour la modification de la configuration, l'administrateur l'examinera et terminera la modification de la configuration.

Bien entendu, en tant que plateforme de gestion des opérations et de la maintenance, CacheCloud fournit non seulement des opérations d'exploitation et de maintenance, mais fournit également une multitude d'informations de surveillance.

CacheCloud collectera non seulement les informations sur l'état d'exécution en temps réel de l'instance fournies par la commande INFO pour un affichage visuel, mais enregistrera également les informations sur l'état d'exécution de l'instance, telles que l'utilisation de la mémoire, le nombre de connexions client et les clés. volume de données de paire de valeurs. De cette manière, lorsqu'un problème survient dans le fonctionnement de Redis, le personnel d'exploitation et de maintenance peut interroger les enregistrements historiques enregistrés et effectuer une analyse sur la base des informations sur l'état de fonctionnement à ce moment-là.

Si vous souhaitez disposer d'une plateforme unifiée pour héberger de manière centralisée les tâches liées à la gestion des instances Redis, CacheCloud est un bon outil.

Résumé

Dans cette leçon, je vous ai présenté plusieurs outils d'exploitation et de maintenance Redis.

Nous avons d'abord découvert la commande INFO de Redis. Cette commande est la base des outils de surveillance. Les outils de surveillance effectueront un traitement secondaire basé sur les informations fournies par la commande INFO. Nous avons également appris trois outils d'exploitation et de maintenance pour surveiller l'état de fonctionnement en temps réel de Redis, à savoir Redis-exporter, redis-stat et Redis Live.

Concernant la migration des données, on peut soit utiliser l'outil Redis-shake, soit migrer via des fichiers RDB ou des fichiers AOF.

Lors de l'exploitation et de la maintenance de Redis, les nombreux outils open source que nous venons de mentionner peuvent déjà répondre à bon nombre de nos besoins. Cependant, différents secteurs d'activité peuvent parfois avoir des exigences différentes en matière d'exploitation et de maintenance de Redis, et l'utilisation directe d'outils open source prêts à l'emploi peut ne pas être en mesure de répondre à tous les besoins. Dans ce cas, il est recommandé d'effectuer un développement secondaire ou une auto-recherche. basé sur des outils open source, répondant ainsi mieux aux besoins d'utilisation des entreprises.

Pour plus de connaissances sur la programmation, veuillez visiter : Introduction à la programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer