


Introduction au principe de la réplication maître-esclave Redis (image et texte)
Cet article vous apporte une introduction aux principes de la réplication maître-esclave Redis (images et textes). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Faire face à des problèmes
Panne de machine. Nous déployons sur un serveur Redis Lorsqu'une panne de machine se produit, nous devons migrer vers un autre serveur et nous assurer que les données sont synchronisées. Les données sont la chose la plus importante si vous ne vous en souciez pas, vous n'utiliserez pratiquement pas Redis.
Goulot d'étranglement de capacité. Lorsque nous aurons besoin d'étendre la mémoire Redis, de 16 Go de mémoire à 64 Go, une seule machine ne pourra certainement pas la satisfaire. Bien sûr, vous pouvez acheter une nouvelle machine 128G.
Solution
Pour obtenir une plus grande capacité de stockage de la base de données distribuée et résister à un accès simultané élevé, nous stockerons les données de la base de données centralisée d'origine séparément sur plusieurs autres réseaux. nœuds.
Afin de résoudre ce problème de nœud unique, Redis déploiera également plusieurs copies de données sur d'autres nœuds pour la réplication afin d'obtenir une haute disponibilité de Redis et une sauvegarde redondante des données pour garantir la haute disponibilité des données et des services.
Réplication maître-esclave
Qu'est-ce que la réplication maître-esclave
La réplication maître-esclave fait référence à la copie des données d'un serveur Redis vers d'autres serveurs Redis. Le premier est appelé nœud maître et le second nœud esclave. La réplication des données est unidirectionnelle et ne peut s'effectuer que du nœud maître vers le nœud esclave.
Par défaut, chaque serveur Redis est un nœud maître ; et un nœud maître peut avoir plusieurs nœuds esclaves (ou aucun nœud esclave), mais un nœud esclave ne peut avoir qu'un seul nœud maître.
Le rôle de la réplication maître-esclave
Redondance des données : la réplication maître-esclave implémente la sauvegarde à chaud des données, qui est une méthode de redondance des données en plus de la persistance.
Récupération après panne : lorsque le nœud maître a un problème, le nœud esclave peut fournir des services pour obtenir une récupération rapide après panne ; il s'agit en fait d'une sorte de redondance de service.
Équilibrage de charge : sur la base de la réplication maître-esclave, combinée à une séparation lecture-écriture, le nœud maître peut fournir des services d'écriture et les nœuds esclaves peuvent fournir des services de lecture (c'est-à-dire lors de l'écriture de données Redis, appliquez le nœud maître de connexion, lors de la lecture des données Redis, connectez-vous au nœud esclave) pour partager la charge du serveur, en particulier dans les scénarios où il y a moins d'écriture et plus de lecture, le partage de la charge de lecture via plusieurs nœuds esclaves peut grandement ; augmenter la concurrence du serveur Redis.
Séparation en lecture et en écriture : elle peut être utilisée pour réaliser la séparation en lecture et en écriture, l'écriture de la bibliothèque principale et la lecture de la bibliothèque esclave. La séparation en lecture et en écriture peut non seulement améliorer la capacité de charge du serveur. , mais peut également être utilisé en fonction de l'évolution de la demande. Modifier le nombre de bibliothèques esclaves
Pierre angulaire de la haute disponibilité : en plus des fonctions ci-dessus, la réplication maître-esclave est également la clé. base pour la mise en œuvre des sentinelles et des clusters.Par conséquent, la réplication maître-esclave est la base de la haute disponibilité de Redis.
Activer la réplication maître-esclave
Les nœuds esclaves activent la réplication maître-esclave. Il existe trois manières :
Fichier de configuration. : Dans Ajouter depuis le fichier de configuration du serveur : slaveof
Commande de démarrage : Ajouter --slaveof
commande de démarrage. Commande client : Une fois le serveur Redis démarré, exécutez la commande directement via le client : slaveof
, puis l'instance Redis. devient un nœud esclave.
Vous pouvez voir certaines informations de réplication via la commande info replication
Principe de réplication maître-esclave
Le processus de réplication maître-esclave peut être grossièrement divisé en 3 étapes : Phase d'établissement de la connexion (c'est-à-dire phase de préparation), phase de synchronisation des données, phase de propagation des commandes.
Après avoir exécuté la commande slaveof à partir du nœud, le processus de réplication commence à fonctionner. Vous pouvez le voir grossièrement dans l'image ci-dessous
Sur l'image, vous pouvez voir que le processus de réplication est grossièrement divisé. en 6 processus
Les enregistrements du journal après la configuration maître-esclave peuvent également voir ce processus
1) Enregistrez les informations du nœud maître (maître) .
Après avoir exécuté slaveof, Redis imprimera le journal suivant :
2) Le nœud esclave (esclave) maintient la logique liée à la réplication via des tâches planifiées qui s'exécutent toutes les secondes. Lorsque la tâche planifiée Après avoir découvert l'existence d'un nouveau nœud maître, il tentera d'établir une connexion réseau avec le nœud
Le nœud esclave établira une connexion réseau avec le nœud nœud maître
Le nœud esclave établira un socket socket, le nœud esclave établit un socket avec le port 51234, qui est spécialement utilisé pour accepter les commandes de réplication envoyées par le nœud maître. Une fois le nœud esclave connecté avec succès, le journal suivant est imprimé :
Si le nœud esclave ne parvient pas à établir une connexion, la tâche planifiée réessayera indéfiniment jusqu'à ce que la connexion soit réussie ou exécutera slaveof no one pour annuler la réplication
Concernant l'échec de connexion , vous pouvez l'exécuter sur la réplication des informations du nœud esclave. Affichez la métrique master_link_down_since_seconds, qui enregistre l'heure système lorsque la connexion au nœud maître a échoué. Lorsque le nœud esclave ne parvient pas à se connecter au nœud maître, le journal suivant sera imprimé toutes les secondes pour faciliter la découverte du problème :
# Error condition on socket for SYNC: {socket_error_reason}
3) Envoyez la commande ping.
Une fois la connexion établie avec succès, le nœud esclave envoie une requête ping pour la première communication. L'objectif principal de la requête ping est le suivant :
·Détecter si la prise réseau entre le maître et l'esclave est disponible.
·Détectez si le nœud maître peut actuellement accepter les commandes de traitement.
Si après l'envoi de la commande ping, le nœud esclave ne reçoit pas la réponse pong du nœud maître ou expire, par exemple si le réseau expire ou si le nœud maître est bloqué et ne peut pas répondre à la commande, le nœud esclave le fera. déconnectez la connexion de réplication et la prochaine tâche planifiée lancera une reconnexion.
La commande ping envoyée depuis le nœud est renvoyée avec succès, Redis imprime le journal suivant et continue le processus de réplication suivant :
4) Vérification des autorisations. Si le paramètre requirepass est défini sur le nœud maître, la vérification du mot de passe est requise. Le nœud esclave doit configurer le paramètre masterauth pour garantir que le mot de passe est le même que celui du nœud maître pour réussir la vérification. Si la vérification échoue, la réplication sera effectuée ; terminé et le nœud esclave relancera le processus de réplication.
5) Synchronisez les ensembles de données. Une fois la connexion de réplication maître-esclave communiquée normalement, lorsque la réplication est établie pour la première fois, le nœud maître enverra toutes les données qu'il détient au nœud esclave. Cette partie de l'opération est l'étape la plus longue.
6) Commande pour continuer la copie. Lorsque le nœud maître synchronise les données actuelles avec le nœud esclave, le processus d'établissement de la réplication est terminé. Ensuite, le nœud maître enverra en permanence des commandes d'écriture aux nœuds esclaves pour garantir la cohérence des données maître-esclave.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

Les principaux avantages du PHP comprennent la facilité d'apprentissage, un soutien solide sur le développement Web, les bibliothèques et les cadres riches, les performances élevées et l'évolutivité, la compatibilité multiplateforme et la rentabilité. 1) Facile à apprendre et à utiliser, adapté aux débutants; 2) une bonne intégration avec les serveurs Web et prend en charge plusieurs bases de données; 3) ont des cadres puissants tels que Laravel; 4) Des performances élevées peuvent être obtenues grâce à l'optimisation; 5) prendre en charge plusieurs systèmes d'exploitation; 6) Open source pour réduire les coûts de développement.

PHP est originaire en 1994 et a été développé par Rasmuslerdorf. Il a été utilisé à l'origine pour suivre les visiteurs du site Web et a progressivement évolué en un langage de script côté serveur et a été largement utilisé dans le développement Web. Python a été développé par Guidovan Rossum à la fin des années 1980 et a été publié pour la première fois en 1991. Il met l'accent sur la lisibilité et la simplicité du code, et convient à l'informatique scientifique, à l'analyse des données et à d'autres domaines.

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP convient aux systèmes de développement Web et de gestion de contenu, et Python convient aux scripts de science des données, d'apprentissage automatique et d'automatisation. 1.Php fonctionne bien dans la création de sites Web et d'applications rapides et évolutifs et est couramment utilisé dans CMS tel que WordPress. 2. Python a permis de manière remarquable dans les domaines de la science des données et de l'apprentissage automatique, avec des bibliothèques riches telles que Numpy et Tensorflow.

PHP est un langage de script côté serveur utilisé pour le développement Web dynamique et les applications côté serveur. 1.Php est un langage interprété qui ne nécessite pas de compilation et convient au développement rapide. 2. Le code PHP est intégré à HTML, ce qui facilite le développement de pages Web. 3. PHP traite la logique côté serveur, génère une sortie HTML et prend en charge l'interaction utilisateur et le traitement des données. 4. PHP peut interagir avec la base de données, traiter la soumission du formulaire et exécuter les tâches côté serveur.

PHP a façonné le réseau au cours des dernières décennies et continuera de jouer un rôle important dans le développement Web. 1) PHP est originaire de 1994 et est devenu le premier choix pour les développeurs en raison de sa facilité d'utilisation et de son intégration transparente avec MySQL. 2) Ses fonctions principales incluent la génération de contenu dynamique et l'intégration à la base de données, ce qui permet au site Web d'être mis à jour en temps réel et affiché de manière personnalisée. 3) La large application et l'écosystème de PHP ont motivé son impact à long terme, mais il fait également face à des mises à jour de version et à des défis de sécurité. 4) Les améliorations des performances ces dernières années, telles que la sortie de PHP7, lui permettent de rivaliser avec les langues modernes. 5) À l'avenir, PHP doit faire face à de nouveaux défis tels que la conteneurisation et les microservices, mais sa flexibilité et sa communauté active le rendent adaptable.
