Maison >base de données >Redis >Parlons de la réplication maître-esclave dans Redis
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 !
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 RedisDeux : Utilisation spécifique
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为从库
3.使从库重新成为主库:
SLAVEOF no one
(1)一般情况下,主库掉线后,从库会等待主库重新连线,依旧保持从库状态
(2)从库掉线后,需重新连上主库,才能作为从库,否则则为主库
概述:为了当主库服务掉线后,使其他从库能重新选取一个主库继续服务运转
作用:当主库服务掉线之后,哨兵会监听到主库掉线,并进行投票操作使其中一个从库成为主库替代原主库运行。
1、在redis服务启动的目录下创建一个 sentinel.conf
文件,vim编辑此配置文件
` sentinel monitor host6379 127.0.0.1 6381 1 `
2、通过 redis-sentinel 【文件目录】/sentinel.conf
连接建立-->数据同步-->命令持续传播 在从节点执行 slaveof 命令后,复制过程便开始运作,下面图示大概可以看到,\3. Rendre la bibliothèque esclave la bibliothèque maître :
ESCLAVE DE personne
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
(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îtreAperç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 serviceQuatre : Sentinelle Mode
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.
1. 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}
2 via redis-sentinel [Répertoire de fichiers. ]/sentinel.conf
Dé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.
Cinq : Principe :rrreee
On peut voir sur l'image que le processus de réplication est grossièrement divisé en 6 processusLes 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 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
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é :
🎜🎜🎜 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!