Partage de technologie

7. Processus de réplication maître-esclave Redis

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Processus de réplication maître-esclave Redis

​ Lorsqu'un nœud Redis (nœud esclave) reçoit une instruction similaire à slaveof 127.0.0.1 6380 jusqu'à ce qu'il puisse continuer à copier les données du maître, il passe généralement par le processus suivant :

1. Enregistrez l'adresse principale

​ Lorsque l'esclave reçoit la commande slaveof, l'esclave enregistre immédiatement la nouvelle adresse du maître.

2. Établir la connexion

L'esclave maintient une tâche planifiée qui tentera d'établir une connexion socket avec le maître. Si la connexion ne peut pas être établie, il réessayera périodiquement jusqu'à ce que la connexion réussisse ou que la commande slaveof no one soit reçue.

3. L'esclave envoie une commande ping

Une fois la connexion établie avec succès, l'esclave enverra la commande ping pour la première communication. Si l'esclave ne reçoit pas de réponse du maître, l'esclave se déconnectera activement et la prochaine tâche planifiée tentera de se connecter à nouveau.

4. Vérifiez l'identité de l'esclave

​ Si le maître reçoit la commande ping de l'esclave, il n'y répondra pas immédiatement, mais effectuera d'abord l'authentification.Si la vérification échoue, un message sera envoyé pour refuser la connexion ; si la vérification réussit, une réponse de réussite de connexion sera envoyée à l'esclave.

5. Maîtrisez la persévérance

Une fois la première communication réussie, l'esclave enverra une demande de synchronisation des données au maître. Lorsque le maître reçoit la demande, il déboursera un processus enfant afin que le processus enfant puisse être conservé immédiatement de manière asynchrone.

6. Envoi de données

​ Une fois la persistance terminée, le maître déboursera un processus enfant et laissera le processus enfant envoyer des données à l'esclave de manière asynchrone. L'esclave écrira en continu les données reçues dans le fichier de persistance local.

Pendant le processus de synchronisation des données de l'esclave, le processus principal du maître accepte toujours en permanence les opérations d'écriture du client et écrit non seulement de nouvelles données dans la mémoire principale, mais les écrit également dans le cache de synchronisation. Une fois les données du fichier de persistance du maître envoyées, le maître enverra les nouvelles données du cache de synchronisation à l'esclave, et l'esclave les écrira dans le fichier de persistance local.Synchronisation des données terminée

7. L'esclave restaure les données de la mémoire

​ Lorsque la synchronisation des données entre l'esclave et le maître est terminée, l'esclave lira le fichier persistant local, le restaurera dans la mémoire locale, puis fournira des services de lecture externes.

8. Réplication incrémentielle continue

Pendant le processus de fourniture de services externes par l'esclave, le maître enverra continuellement de nouvelles données à l'esclave de manière incrémentielle pour garantir la cohérence des données maître-esclave.