redis‐server redis.conf
redis‐cli ‐p 6380
En savoir plus sur la réplication maître-esclave dans 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 !
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
- Un maître et plusieurs esclaves
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# 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,注释掉即可)
#从本机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#从本机master6379的redis实例复制数据,Redis5.0之前使用slaveof replicaof 192.168.0.60 6379 #配置从节点只读 replica‐read‐only yes
redis‐server redis.conf
Copier après la connexion
6. l'instance peut synchroniser les données nouvellement modifiées dans le tempsredis‐server redis.conf
redis‐cli ‐p 6380
Copier après la connexionConfiguration maître-esclave Le rôle de
Séparation de la lecture et de l'écritureredis‐cli ‐p 6380
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
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
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.
Organigrammel'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)- 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.
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="")
- ou de l'envoi du mot de passe au maître via le commande auth
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
3. 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
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
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!

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

AI Hentai Generator
Générez AI Hentai gratuitement.

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)

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: 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.

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).

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.

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.

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.

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.

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.
