Table des matières
Configuration de base maître-esclave
Configurer à partir de Redis
1 Copier un fichier redis.conf
2.
redis‐server redis.conf
Copier après la connexion
" >
redis‐server redis.conf
Copier après la connexion
redis‐cli ‐p 6380
Copier après la connexion
Configuration maître-esclave Le rôle de " >
redis‐cli ‐p 6380
Copier après la connexion
Configuration maître-esclave Le rôle de
4. Le nœud esclave reçoit l'instantané rdb
5 Le maître Redis envoie le fichier de cache tampon au. slave Redis
6. Le nœud esclave reçoit le fichier cache tampon
7 Le Redis maître envoie en continu des commandes au nœud esclave via le. Connexion longue Socker
Aperçu
Copie partielle de la copie maître-esclave
Brève description
Synchronisation incrémentielle de la réplication maître-esclave
Détection du rythme cardiaque de la réplication maître-esclave
1. Détectez l'état de connexion du serveur maître-esclave
2. Implémentation auxiliaire de min-slaves
3. Détecter la perte de commande
Comment juger une copie complète ou partielle
Maison base de données Redis En savoir plus sur la réplication maître-esclave dans Redis

En savoir plus sur la réplication maître-esclave dans Redis

Dec 27, 2021 am 10:17 AM
redis 主从复制

Cet article vous présentera la réplication maître-esclave dans Redis, présentera la configuration maître-esclave de base, ainsi que les fonctions et principes de la configuration maître-esclave. J'espère qu'il vous sera utile !

En savoir plus sur la réplication maître-esclave dans Redis

Redis prend en charge la fonction de réplication maître-esclave. Vous pouvez activer la fonction de réplication en exécutant slaveof (changé en réplicaof après la version Redis5) ou en définissant slaveof dans le fichier de configuration (changé en réplicaof après la version Redis5). [Recommandations associées : Tutoriel vidéo Redis]

  • Un maître et deux clusters

En savoir plus sur la réplication maître-esclave dans Redis

  • Un maître et plusieurs esclaves

En savoir plus sur la réplication maître-esclave dans Redis

Configuration de base maître-esclave

Configuration maître Redis

Configuration principale de Re dis Il n'est fondamentalement pas nécessaire de modifier. L'élément clé est de configurer à partir de Redis

Configurer à partir de Redis

1 Copier un fichier redis.conf

2.

3. Configurez la réplication maître-esclave

# salve的端口号
port 6380 

#把pid进程号写入pidfile配置的文件
pidfile /var/run/redis_6380.pid 

logfile "6380.log"  

#指定数据存放目录
dir /usr/local/redis‐5.0.3/data/6380 

#需要注释掉bind
#bind127.0.0.1(bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通过机器的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可)
Copier après la connexion

4. Démarrez le nœud esclave

#从本机master6379的redis实例复制数据,Redis5.0之前使用slaveof
replicaof 192.168.0.60 6379

#配置从节点只读
replica‐read‐only yes
Copier après la connexion

5. Connectez le nœud esclave

redis‐server redis.conf
Copier après la connexion

6. l'instance peut synchroniser les données nouvellement modifiées dans le temps

redis‐cli ‐p 6380
Copier après la connexion
Configuration maître-esclave Le rôle de

Séparation de la lecture et de l'écriture

Un maître et plusieurs esclaves, synchronisation maître-esclave
  • Le maître est responsable de l'écriture , et l'esclave est responsable de la lecture
  • Améliorer les performances et le débit de Redis
  • Problème de cohérence des données maître-esclave
Tolérance aux catastrophes de données

L'esclave est la sauvegarde de l'hôte
  • L'hôte est en panne , l'esclave peut lire mais pas écrire
  • Par défaut, une fois l'hôte en panne, l'esclave ne peut pas être utilisé par l'hôte
  • Sentinel peut réaliser une commutation maître-esclave, pour atteindre une haute disponibilité
  • Principe de fonctionnement du maître Redis- esclave

Copie complète de la réplication maître-esclave

Ce n'est que la première fois que le Redis esclave se connecte au Redis maître que la copie complète se produit. S'il s'agit d'un CV à court terme, il peut s'agir d'une copie complète. peut-être une copie partielle.

Organigramme

En savoir plus sur la réplication maître-esclave dans Redis

En savoir plus sur la réplication maître-esclave dans Redis

1. Établissez une longue connexion Socker avec le maître Redis

l'esclave établit une connexion socket avec le maître

processeur d'événements de fichiers associé à l'esclave

Ce processeur reçoit R Base de données fichiers (Copie complète), recevez la commande d'écriture transmise par le Maître (copie incrémentielle)

En savoir plus sur la réplication maître-esclave dans Redis

Après que le serveur maître ait accepté la connexion Socket du serveur esclave, il crée l'état client correspondant. Cela équivaut à ce que le serveur esclave soit le client du serveur maître.

En savoir plus sur la réplication maître-esclave dans Redis

    Envoyer la commande ping
    • L'esclave envoie la commande ping au maître
      • 1. Vérifiez l'état de lecture et d'écriture du socket
      • 2. Vérifiez si le maître peut le gérer normalement.
    • Réponse du Maître :
      • 1. Envoyez "pong", indiquant un délai d'attente normal
      • 2.
      Vérification des autorisations
  • Une fois que le maître et l'esclave sont connectés normalement, effectuez la vérification des autorisations

Le maître n'a pas défini de mot de passe (requirepass="") et il n'est pas nécessaire de définir un mot de passe (masterauth="")En savoir plus sur la réplication maître-esclave dans Redis

Le maître définit un mot de passe (requirepass! =""), de la nécessité de définir un mot de passe (masterauth=la valeur du requirepass du maître)
  • ou de l'envoi du mot de passe au maître via le commande auth

2. Le maître Redis reçoit la commande PSYNC

Le maître Redis reçoit L'exécution de la commande bgsave après que la commande PSYNC génère le dernier instantané rdb

En savoir plus sur la réplication maître-esclave dans Redis3. instantané au Redis esclave.

Lorsque le maître Redis envoie l'instantané rdb au Redis esclave, le maître continuera à recevoir les requêtes du client. Il mettra en cache ces requêtes susceptibles de modifier l'ensemble de données en mémoire et les stockera dans le. cache tampon relp
  • Phase d'instantané de synchronisation : le maître crée et envoie l'instantané RDB à l'esclave, et l'esclave charge et analyse l'instantané. Le Maître stocke également dans le tampon les nouvelles commandes d'écriture générées lors de cette phase.

4. Le nœud esclave reçoit l'instantané rdb

Une fois que le nœud esclave a reçu l'instantané rdb, il efface les anciennes données et charge le fichier rdb

5 Le maître Redis envoie le fichier de cache tampon au. slave Redis

Synchroniser le tampon d'écriture Étape : Le maître synchronise la commande d'opération d'écriture stockée dans le tampon avec l'esclave.

6. Le nœud esclave reçoit le fichier cache tampon

Le nœud esclave reçoit le fichier cache tampon et charge le fichier cache tampon dans la mémoire

7 Le Redis maître envoie en continu des commandes au nœud esclave via le. Connexion longue Socker

Recevez la commande envoyée par le maître Redis depuis Redis et exécutez la commande actuelle

Aperçu

Si vous configurez un esclave pour le maître, que l'esclave soit connecté ou non au maître pour la première fois temps, il enverra une commande PSYNC au maître demande de copier les données. Après avoir reçu la commande PSYNC, le maître effectuera la persistance des données en arrière-plan et générera le dernier fichier d'instantané RDB via bgsave. Pendant la période de persistance, le maître continuera à recevoir les demandes des clients et mettra en cache ces demandes susceptibles de modifier les données. mis en mémoire. Lorsque la persistance est terminée, le maître enverra l'ensemble de données du fichier RDB à l'esclave, et l'esclave conservera les données reçues pour générer du RDB, puis les chargera dans la mémoire. Ensuite, le maître envoie la commande préalablement mise en cache en mémoire à l'esclave. Lorsque la connexion entre le maître et l'esclave est déconnectée pour une raison quelconque, l'esclave peut se reconnecter automatiquement au maître. Si le maître reçoit plusieurs demandes de connexion simultanées à l'esclave, elle ne persistera qu'une fois, pas une fois pour chaque connexion, puis enverra. ces données persistantes à plusieurs esclaves connectés simultanément.

Copie partielle de la copie maître-esclave

En savoir plus sur la réplication maître-esclave dans Redis

Le processus général est similaire à la copie complète, je ne l'expliquerai donc pas en détail

Brève description

Lorsque le maître et l'esclave sont déconnectés et reconnecté, toutes les données seront généralement faites une copie. Cependant, à partir de la version 2.8 de Redis, Redis utilise la commande PSYNC qui peut prendre en charge la réplication partielle des données pour synchroniser les données avec le maître. L'esclave et le maître ne peuvent effectuer une réplication partielle des données (reprise de la transmission) qu'une fois la connexion réseau déconnectée et reconnectée. Le maître créera une file d'attente de cache pour copier les données dans sa mémoire afin de mettre en cache les données de la période la plus récente. Le maître et tous ses esclaves conservent le décalage d'indice des données copiées et l'identifiant de processus du maître. Par conséquent, lorsque la connexion réseau est déconnectée, Ensuite, l'esclave demandera au maître de poursuivre la réplication inachevée, à partir de l'index des données enregistrées. Si l'ID du processus maître change ou si le décalage des données du nœud esclave est trop ancien et ne se trouve plus dans la file d'attente du cache du maître, une copie complète des données sera effectuée. Organigramme de la réplication maître-esclave (réplication partielle, reprise du point d'arrêt) :

Synchronisation incrémentielle de la réplication maître-esclave

  • La synchronisation incrémentielle Redis fait principalement référence aux opérations d'écriture qui se produisent sur le maître lorsque l'esclave termine l'initialisation et démarre pour fonctionner normalement. Le processus de synchronisation avec l'esclave.

  • Normalement, chaque fois que le maître exécute une commande d'écriture, il enverra la même commande d'écriture à l'esclave, puis l'esclave la recevra et l'exécutera.

Détection du rythme cardiaque de la réplication maître-esclave

1. Détectez l'état de connexion du serveur maître-esclave

Détectez l'état de la connexion réseau du serveur maître-esclave en envoyant la commande de réplication INFO à. le serveur maître, vous pouvez lister la liste des serveurs esclaves. Vous pouvez voir combien de secondes se sont écoulées depuis que la dernière commande a été envoyée au maître. La valeur de lag doit sauter entre 0 et 1. Si elle dépasse 1, cela signifie que la connexion entre le maître et l'esclave est défectueuse.

2. Implémentation auxiliaire de min-slaves

Redis peut être configuré pour empêcher le serveur principal d'exécuter la commande d'écriture min-slaves-to-write 3 (min-replicas-to-write 3) sous conditions dangereuses -max-lag 10 (min-replicas-max-lag 10) La configuration ci-dessus signifie : lorsque le nombre de serveurs esclaves est inférieur à 3, ou que la valeur du délai (lag) des trois serveurs esclaves est supérieure ou égale à 10 secondes, le serveur maître L'exécution de la commande d'écriture sera refusée. La valeur du délai ici est la valeur de décalage de la commande INForeplication ci-dessus.

3. Détecter la perte de commande

Si la commande d'écriture transmise du serveur maître au serveur esclave est perdue à mi-chemin en raison d'une panne de réseau, alors lorsque le serveur esclave envoie la commande REPLCONF ACK au serveur maître, le maître Le serveur remarquera l'état actuel du serveur esclave. Si le décalage de réplication est inférieur à son propre décalage de réplication, le serveur maître trouvera les données manquantes du serveur esclave dans le tampon du backlog de réplication en fonction du décalage de réplication soumis par l'esclave. serveur et renvoyer les données au serveur esclave. (Réédition) Le réseau est continuellement synchronisé de manière incrémentale : le réseau est déconnecté, et lorsqu'il est reconnecté

Comment juger une copie complète ou partielle

En savoir plus sur la réplication maître-esclave dans Redis

Une fois que le client a envoyé la sauvegarde, le nœud maître jugera s'il est copié pour la première fois. Si tel est le cas, il effectuera une copie complète si elle n'est pas cohérente. , il sera jugé par le décalage runid. S'ils sont cohérents, une copie partielle est effectuée, sinon une copie complète est effectuée.

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment construire le mode Cluster Redis Comment construire le mode Cluster Redis Apr 10, 2025 pm 10:15 PM

Le mode Redis Cluster déploie les instances Redis sur plusieurs serveurs grâce à la rupture, à l'amélioration de l'évolutivité et de la disponibilité. Les étapes de construction sont les suivantes: Créez des instances de redis étranges avec différents ports; Créer 3 instances Sentinel, Moniteur Redis Instances et basculement; Configurer les fichiers de configuration Sentinel, ajouter des informations d'instance Redis de surveillance et des paramètres de basculement; Configurer les fichiers de configuration d'instance Redis, activer le mode de cluster et spécifier le chemin du fichier d'informations de cluster; Créer un fichier nœuds.conf, contenant des informations de chaque instance redis; Démarrez le cluster, exécutez la commande CREATE pour créer un cluster et spécifiez le nombre de répliques; Connectez-vous au cluster pour exécuter la commande d'informations de cluster pour vérifier l'état du cluster; faire

Comment effacer les données redis Comment effacer les données redis Apr 10, 2025 pm 10:06 PM

Comment effacer les données Redis: utilisez la commande flushall pour effacer toutes les valeurs de clé. Utilisez la commande flushdb pour effacer la valeur clé de la base de données actuellement sélectionnée. Utilisez SELECT pour commuter les bases de données, puis utilisez FlushDB pour effacer plusieurs bases de données. Utilisez la commande del pour supprimer une clé spécifique. Utilisez l'outil Redis-CLI pour effacer les données.

Comment utiliser la commande redis Comment utiliser la commande redis Apr 10, 2025 pm 08:45 PM

L'utilisation de la directive Redis nécessite les étapes suivantes: Ouvrez le client Redis. Entrez la commande (Verbe Key Value). Fournit les paramètres requis (varie de l'instruction à l'instruction). Appuyez sur Entrée pour exécuter la commande. Redis renvoie une réponse indiquant le résultat de l'opération (généralement OK ou -err).

Comment lire la file d'attente redis Comment lire la file d'attente redis Apr 10, 2025 pm 10:12 PM

Pour lire une file d'attente à partir de Redis, vous devez obtenir le nom de la file d'attente, lire les éléments à l'aide de la commande LPOP et traiter la file d'attente vide. Les étapes spécifiques sont les suivantes: Obtenez le nom de la file d'attente: Nommez-le avec le préfixe de "Fitre:" tel que "Fitre: My-Quyue". Utilisez la commande LPOP: éjectez l'élément de la tête de la file d'attente et renvoyez sa valeur, telle que la file d'attente LPOP: My-Queue. Traitement des files d'attente vides: si la file d'attente est vide, LPOP renvoie NIL et vous pouvez vérifier si la file d'attente existe avant de lire l'élément.

Comment utiliser Redis Lock Comment utiliser Redis Lock Apr 10, 2025 pm 08:39 PM

L'utilisation des opérations Redis pour verrouiller nécessite l'obtention du verrouillage via la commande setnx, puis en utilisant la commande Expire pour définir le temps d'expiration. Les étapes spécifiques sont les suivantes: (1) Utilisez la commande setnx pour essayer de définir une paire de valeurs de clé; (2) Utilisez la commande Expire pour définir le temps d'expiration du verrou; (3) Utilisez la commande del pour supprimer le verrouillage lorsque le verrouillage n'est plus nécessaire.

Comment lire le code source de Redis Comment lire le code source de Redis Apr 10, 2025 pm 08:27 PM

La meilleure façon de comprendre le code source redis est d'aller étape par étape: familiarisez-vous avec les bases de Redis. Sélectionnez un module ou une fonction spécifique comme point de départ. Commencez par le point d'entrée du module ou de la fonction et affichez le code ligne par ligne. Affichez le code via la chaîne d'appel de fonction. Familiez les structures de données sous-jacentes utilisées par Redis. Identifiez l'algorithme utilisé par Redis.

Comment faire du message middleware pour redis Comment faire du message middleware pour redis Apr 10, 2025 pm 07:51 PM

Redis, en tant que Message Middleware, prend en charge les modèles de consommation de production, peut persister des messages et assurer une livraison fiable. L'utilisation de Redis comme Message Middleware permet une faible latence, une messagerie fiable et évolutive.

Comment démarrer le serveur avec redis Comment démarrer le serveur avec redis Apr 10, 2025 pm 08:12 PM

Les étapes pour démarrer un serveur Redis incluent: Installez Redis en fonction du système d'exploitation. Démarrez le service Redis via Redis-Server (Linux / MacOS) ou Redis-Server.exe (Windows). Utilisez la commande redis-Cli Ping (Linux / MacOS) ou redis-Cli.exe Ping (Windows) pour vérifier l'état du service. Utilisez un client redis, tel que redis-cli, python ou node.js pour accéder au serveur.

See all articles