Maison > Article > base de données > Redis explique la réplication maître-esclave et le mode sentinelle
Recommandé (gratuit) : redis
Répertoire d'articles
Réplication maître-esclave
La réplication maître-esclave fait référence à la copie de données d'un serveur Redis vers d'autres serveurs Redis. Le premier est appelé le nœud maître Maître, et le second est appelé le nœud esclave Esclave. Il ne peut être copié qu'un seul. -du maître aux autres serveurs Redis Slave, généralement Master effectue principalement des opérations d'écriture, et Slave effectue principalement des opérations de lecture, réalisant ainsi la séparation de la lecture et de l'écriture.
Fonction
- Redondance des données : la réplication maître-esclave réalise une sauvegarde à chaud des données, qui est une sorte de redondance des données en plus de la persistance.
- Récupération après panne : lorsqu'un problème survient sur le nœud maître, le nœud esclave peut fournir des services pour réaliser une récupération rapide après panne ; il s'agit en fait d'une sorte de redondance de service.
- Équilibrage de charge : basé sur 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 que lors de l'écriture de données Redis, l'application se connecte au nœud maître et lit les données Redis. Lorsque l'application se connecte au nœud esclave), la charge du serveur est partagée, 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 considérablement augmenter la concurrence ; le serveur Redis.
- Pierre angulaire de la haute disponibilité : en plus des fonctions ci-dessus, la réplication maître-esclave est également la base de 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.
Commande
Commande | Fonction th> | ||||||
---|---|---|---|---|---|---|---|
|
Transforme le serveur actuel en serveur esclave du serveur spécifié. S'il s'agit déjà d'un esclave, il arrête la synchronisation de l'ancien serveur maître, supprime l'ancien ensemble de données et commence la synchronisation du nouveau serveur maître. SLAVEOF NO ONE entraînera la désactivation de la fonction de réplication du serveur esclave et la transition du serveur esclave vers le serveur maître. L'ensemble de données synchronisées d'origine ne sera pas supprimé. | ||||||
info [section] | La commande INFO renvoie diverses informations sur le serveur Redis de manière simple. -comprendre et lire le format des informations et des valeurs statistiques. En donnant des paramètres optionnelssection permet à la commande de renvoyer uniquement une certaine partie des informations : |
Configuration
Prenons comme exemple une seule machine avec plusieurs services (normalement plusieurs machines avec plusieurs services, mais je n'ai qu'un seul serveur)
Tout d'abord , chaque client Redis La valeur par défaut est l'hôte , qui peut être consulté via la commande info replication.
Nous devons donc maintenant ouvrir trois clients en même temps pour simuler un maître et deux esclaves, nous devons donc modifier la configuration :
Copiez d'abord deux fichiers de configuration en tant que configuration esclave, et le maître peut utiliser la configuration par défaut.
Prenez redis80.conf comme exemple pour modifier les cinq points de configuration ci-dessus dans l'ordre, 81 ne modifie que les quatre premiers points.
Puis démarrez-les (79, 80, 81)
Définir maître et esclave :
Vue 79 (maître) à ce moment :
Principe de copie
Copie complète
Chaque fois que l'esclave se connecte au maître, il copiera entièrement, copiant toutes les données du maître à l'esclave.
Copie incrémentielle
Une fois l'esclave connecté au maître, seule cette partie des données mises à jour par le maître sera mise à jour de manière synchrone vers l'esclave.
Test
intégré Définir maître et esclave
Comme le montre la figure 79, c'est l'hôte de 80, et 80 est l'hôte de 81. Il s'agit d'une relation maître-esclave imbriquée.
Mode Sentinelle
Les 80 maîtres-esclaves supérieurs et imbriqués ci-dessus sont tous saisis manuellement par nous sur la ligne de commande Le but est d'éviter les opérations d'écriture après le. l'hôte est en panne pendant la période de fenêtre , ceux-ci nécessitent une intervention manuelle.
Sentinel s'exécutera indépendamment en tant que processus indépendant. Le principe est que Sentinel surveille plusieurs serveurs Redis en cours d'exécution en envoyant des commandes et en attendant que le serveur Redis réponde.
Si Sentinel détecte que l'hôte est hors ligne, il sélectionnera une machine esclave à "monter" (migration automatique des défauts) pour devenir le nouvel hôte. Si l'hôte d'origine est mis en ligne, l'hôte d'origine deviendra l'esclave du nouvel hôte. Le principe est de notifier les autres serveurs via le modèle de publication et d'abonnement, de modifier le fichier de configuration et ainsi de changer d'hôte.
Et si Sentinel tombe en panne ? Plusieurs sentinelles peuvent être utilisées pour se surveiller mutuellement.
Les photos sont tirées de https://www.jianshu.com/p/06ab9daf921d, violation et suppression
Lorsque l'hôte se déconnecte objectivement, Sentinel votera pour un nouvel hôte (L'algorithme spécifique est omis), effectuera un basculement automatique (failover) et informera les autres serveurs de changer via l'hôte de publication et d'abonnement.
Configurer Sentinel
Tout d'abord, il y a une configuration sentinelle annotée détaillée dans le répertoire d'installation :
Créez un nouveau sentinel.conf pour moniteur 6379, le reste peut être défini par défaut :
Démarrer Sentinel :
Test
Mode multi-sentry, configurez les fichiers de configuration pour différents ports pour ouvrir plusieurs clients Sentinel, puis suivez le même modèle (paresseux )
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!