Le temps d'arrêt est un terme informatique. Dans le langage parlé, nous appelons simplement une machine arrêtée une machine en panne. Lorsqu'il est converti en caractères chinois, il s'agit de « temps d'arrêt », mais beaucoup de gens l'appellent « crash »/« crash ». n'est pas standardisé, c'est la popularité.
Le temps d'arrêt fait référence au phénomène selon lequel le système d'exploitation ne peut pas se remettre d'une erreur système grave, ou il y a un problème au niveau matériel du système, ce qui fait que le système ne répond plus pendant une longue période et que l'ordinateur doit être redémarré. Il s’agit d’un phénomène normal lors du fonctionnement d’un ordinateur et cela se produira sur n’importe quel ordinateur.
Un cluster Redis a de nombreux Redis travaillant ensemble, il est donc nécessaire que ce cluster ne soit pas si facile à raccrocher. Par conséquent, en théorie, il devrait l'être. attribué à Au moins un service Redis de sauvegarde par nœud. Ce redis de veille est appelé un esclave. (Apprentissage recommandé : Tutoriel vidéo Redis)
La première chose à dire est que chaque nœud stocke des informations sur tous les nœuds maîtres et nœuds esclaves du cluster. Ils déterminent si le nœud peut être connecté via un ping-pong mutuel. Si plus de la moitié des nœuds ne répondent pas lors de la requête ping sur un nœud, le cluster considérera le nœud comme étant en panne, puis se connectera à son nœud de sauvegarde.
En mode maître-esclave, les temps d'arrêt doivent être divisés en distinctions :
temps d'arrêt redis esclave
Une fois la base de données esclave redémarrée dans Redis, elle rejoindra automatiquement l'architecture maître-esclave et terminera automatiquement la synchronisation des données
Si la base de données esclave implémente la persistance, la synchronisation incrémentielle sera obtenue tant qu'elle sera rentrée dans le maître ; -architecture esclave.
Le maître est en panne
Si ni le maître ni l'esclave n'ont de persistance des données, ne redémarrez pas le service immédiatement à ce moment, sinon une perte de données pourrait se produire. le fonctionnement est le suivant :
- Exécuter SLAVEOF ON ONE sur les données de l'esclave pour déconnecter la relation maître-esclave et mettre à niveau l'esclave vers la base de données principale
- A ce moment, redémarrer la base de données principale , exécutez SLAVEOF et définissez-le. Pour la base de données esclave, les données sont automatiquement sauvegardées.
Conditions nécessaires pour que le cluster entre en état d'échec
Si un nœud maître et tous les nœuds esclaves meurent, notre cluster entrera en état d'échec.
Si plus de la moitié des maîtres du cluster meurent, qu'il y ait ou non un esclave, le cluster entrera en état d'échec
Si un maître du cluster meurt, et le maître actuel n'a pas d'esclave, le cluster entrera dans l'état d'échec
Le processus de vote implique la participation de tous les maîtres du cluster si la communication entre plus de la moitié des nœuds maîtres et le nœud maître est effectuée. out (cluster-node-timeout), le nœud maître actuel est considéré comme mort.
La base de l'élection est : connexion réseau normale->La commande INFO a répondu dans les 5 secondes->connectée au maître dans les 10*arrêt après millisecondes->priorité du serveur esclave->décalage de copie ->Exécutez celui avec un identifiant plus petit. Après sélection, le serveur esclave sera promu au nouveau serveur maître via slaveif no ont.
Utilisez la commande slaveof ip port pour permettre aux autres serveurs esclaves de copier le serveur maître.
Enfin, lorsque l'ancien maître se reconnecte, il devient le serveur esclave du nouveau maître. Notez que si le client est séparé de l'ancien serveur maître, les données écrites seront perdues après récupération car l'ancien maître copiera les données du nouveau maître.
Pour plus d'articles techniques liés à Redis, veuillez visiter la colonne Introduction au didacticiel d'utilisation de la base de données Redis pour apprendre !
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!