Maison  >  Article  >  base de données  >  Comment implémenter la synchronisation incrémentielle de Redis

Comment implémenter la synchronisation incrémentielle de Redis

(*-*)浩
(*-*)浩original
2019-11-27 09:49:313653parcourir

Comment implémenter la synchronisation incrémentielle de Redis

Stratégie de synchronisation existante de Redis

1. Composants fonctionnels de synchronisation incrémentielle (apprentissage recommandé : Vidéo Redis tutoriel)

1) Le décalage de réplication du serveur maître et le décalage de réplication du serveur esclave

Le serveur maître propage N octets au serveur esclave à chaque fois Lors de la réception de données ; , il ajoute N à la valeur de son propre décalage de réplication

Chaque fois que le serveur esclave reçoit N octets de données transmises par le serveur maître, il augmente son propre décalage de réplication ; valeur.

2) Le tampon du backlog de réplication du serveur maître

Une file d'attente de longueur fixe maintenue par le serveur maître, avec une valeur par défaut de 1 M. Lorsque le serveur maître effectue la propagation des commandes, il ne le fera pas. envoyer uniquement des commandes d'écriture Pour tous les serveurs esclaves, les commandes d'écriture seront également mises en file d'attente dans le tampon du backlog de réplication.

3) L'ID courant du serveur.

Chaque serveur génère aléatoirement un identifiant d'exécution (runid) lors de son démarrage.

2. Implémentation de la synchronisation incrémentielle

1) Le serveur esclave envoie une commande PSYNC au serveur maître, portant le runid et le décalage de réplication du serveur maître

2) Le serveur principal vérifie si le runid est cohérent avec son propre runid. Sinon, une copie complète est effectuée

3) Le serveur principal vérifie si le décalage de copie est dans le tampon du backlog ; . Sinon, une copie complète est effectuée.

4) Si les deux vérifications réussissent, le serveur maître enverra toutes les données après le décalage dans la zone du backlog au serveur esclave, ainsi qu'au maître et à l'esclave. les serveurs reviendront à nouveau à un état cohérent.

3. Conclusion

1) Ce n'est que lorsque le runid et le offset du serveur maître portés par le serveur esclave sont cohérents que Redis y adoptera la stratégie de synchronisation incrémentielle. est d'excellentes limitations ;

2) Par conséquent, redis adoptera une stratégie de synchronisation complète lorsque le serveur esclave est redémarré, que le serveur maître est remplacé ou que le temps de connexion est trop long.

Pour plus d'articles techniques liés à Redis, veuillez visiter la colonne

Tutoriel de démarrage de 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!

Déclaration:
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