Maison > base de données > Redis > le corps du texte

Parlons de la réplication maître-esclave dans Redis

青灯夜游
Libérer: 2021-10-08 10:56:36
avant
1698 Les gens l'ont consulté

Cet article parlera de la réplication maître-esclave dans redis et présentera l'utilisation spécifique, les précautions et le mode sentinelle. J'espère qu'il sera utile à tout le monde !

Parlons de la réplication maître-esclave dans Redis

1 : Présentation

La réplication maître-esclave Redis est actuellement la méthode de séparation lecture-écriture la plus couramment utilisée. Un maître est attaché à un ou plusieurs esclaves. Le maître est responsable des opérations d'écriture et résout principalement les problèmes. Il s'agit de partager la pression de la lecture Redis et d'améliorer l'efficacité de la lecture et de l'écriture des données. [Recommandations associées :

Tutoriel vidéo Redis

]

Parlons de la réplication maître-esclave dans RedisDeux : Utilisation spécifique

1. Spécifiez la bibliothèque esclave à connecter à la bibliothèque principale :

host est l'adresse de connexion, port est le numéro de port de la connexion. adresse, bien sûr, vous pouvez également la copier vous-même Plusieurs fichiers redis.conf peuvent démarrer plusieurs services Redis de différents ports en modifiant leur numéro de port, leur numéro de thread et d'autres informations

SLAVEOF [hôte] [port]

2. La bibliothèque principale est chargée de l'écriture (la lecture est également possible), la bibliothèque esclave ne peut lire que : SLAVEOF [host] [port]

2.主库负责写(读也可以),从库只能读:

主库中写的数据能在从库中获取:6381为主库,6380为从库
Copier après la connexion

Parlons de la réplication maître-esclave dans Redis

3.使从库重新成为主库:

SLAVEOF no one

三:注意事项:

(1)一般情况下,主库掉线后,从库会等待主库重新连线,依旧保持从库状态

(2)从库掉线后,需重新连上主库,才能作为从库,否则则为主库

四:哨兵模式

概述:为了当主库服务掉线后,使其他从库能重新选取一个主库继续服务运转

作用:当主库服务掉线之后,哨兵会监听到主库掉线,并进行投票操作使其中一个从库成为主库替代原主库运行。

1、在redis服务启动的目录下创建一个 sentinel.conf文件,vim编辑此配置文件

` sentinel monitor host6379 127.0.0.1 6381 1  `
Copier après la connexion

2、通过 redis-sentinel 【文件目录】/sentinel.conf

 连接建立-->数据同步-->命令持续传播
 
 在从节点执行 slaveof 命令后,复制过程便开始运作,下面图示大概可以看到,\
Copier après la connexion

Parlons de la réplication maître-esclave dans Redis

3. Rendre la bibliothèque esclave la bibliothèque maître :

ESCLAVE DE personne

< h2 data-id="heading-2">Trois : Précautions :

(1) Dans des circonstances normales, après la mise hors ligne de la base de données maître, la base de données esclave attendra que la base de données maître se reconnecte et maintiendra toujours l'état de la base de données esclave Parlons de la réplication maître-esclave dans Redis

(2) Une fois la base de données esclave hors ligne, elle doit se reconnecter à la base de données maître pour pouvoir devenir une bibliothèque esclave, sinon ce sera la bibliothèque maître

Quatre : Sentinelle Mode

Aperçu : Afin de permettre à d'autres bibliothèques esclaves de resélectionner une bibliothèque principale pour continuer lorsque le service de bibliothèque principale est hors ligne. Fonctionnement du service


Fonction : Lorsque le service de base de données principal est hors ligne, la sentinelle surveillera que le service de base de données principal est hors ligne. la base de données est hors ligne et effectuez une opération de vote pour faire de l'une des bases de données esclaves la base de données principale pour remplacer la base de données principale d'origine.

Parlons de la réplication maître-esclave dans Redis1. Créez un fichier sentinel.conf dans le répertoire où le service redis est démarré et modifiez ce fichier de configuration avec vim

# Error condition on socket for SYNC: {socket_error_reason}
Copier après la connexion

2 via redis-sentinel [Répertoire de fichiers. ]/sentinel.confDémarrer Sentinel

Remarque : En mode Sentinel, lorsque la bibliothèque principale d'origine est reconnectée, Sentinel ajoutera ses opérations à la nouvelle bibliothèque principale, c'est-à-dire qu'elle existera en tant que bibliothèque esclave du nouvelle bibliothèque principale. Parlons de la réplication maître-esclave dans Redis

Cinq : Principe :

rrreee

On peut voir sur l'image que le processus de réplication est grossièrement divisé en 6 processus

Parlons de la réplication maître-esclave dans Redis

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 :

Parlons de la réplication maître-esclave dans Redis2) 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 découvre qu'il existe un nouveau nœud maître. , il tentera de communiquer avec le nouveau nœud maître. Le nœud établit une connexion réseau

Parlons de la réplication maître-esclave dans Redis

Le nœud esclave établit une connexion réseau avec le nœud maître

Le nœud esclave établira un socket Le nœud esclave établit un socket. avec le port 51234, qui est spécialement utilisé pour recevoir les messages envoyés par le nœud maître. Copiez la commande. Une fois la connexion réussie du nœud esclave, le journal suivant est imprimé : Parlons de la réplication maître-esclave dans Redis

🎜🎜🎜 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 que slaveof no one soit exécuté pour annuler la réplication. Concernant l'échec de la connexion, vous pouvez exécuter la réplication des informations sur le nœud esclave pour afficher l'indicateur 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 : 🎜rrreee🎜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 déconnectera le connexion de réplication et la prochaine tâche planifiée lancera une reconnexion. 🎜🎜🎜🎜🎜🎜🎜🎜La commande ping envoyée depuis le nœud revient 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 copier en continu. 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.

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéos de 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!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal