Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

La réplication des données

Après cette leçon: Je peux expliquer comment des copies d’une donnée sont tenues à jour et ce qu’une panne change.

Leçon de 55 min4 commandesLab Valkey : apprendre un magasin clé-valeur compatible Redis, avec expiration, listes et compteurs

Garder la même donnée en plusieurs exemplaires

La réplication consiste à garder la même donnée sur plusieurs machines. Elle protège contre la perte d’une machine, et elle permet à plusieurs machines de répondre aux lectures.

Une boutique en ligne sait qu’il reste 40 tasses en stock. Si ce chiffre n’existe que sur une seule machine et qu’elle tombe, la boutique ne sait plus rien.

À la fin de cette leçon

Remarque

Je peux expliquer comment des copies d’une donnée sont tenues à jour et ce qu’une panne change.

Mots clés

MotCe que ça veut dire
Réplicationgarder la même donnée sur plusieurs machines
Primairela copie qui reçoit les écritures
Répliqueune copie qui suit le primaire
Retard de réplicationle nombre de changements qu’une réplique n’a pas encore reçus
Basculementle choix d’une réplique comme nouveau primaire

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Le primaire reçoit, les répliques suivent

Dans le montage le plus courant, une seule machine accepte les écritures : le primaire. Il note chaque changement dans un journal numéroté, puis l’envoie aux répliques.

Chaque réplique applique les changements dans l’ordre du journal. Les lectures peuvent aller au primaire ou à une réplique, ce qui répartit la charge.

Fabriquer un petit client nommé v

Commande
v() ( printf '%s\r\n' "$*" | nc -w 1 valkey 6379 )

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Demander son rôle au serveur du labo

Commande
v INFO replication | grep -E "^(role|connected_slaves)"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire le stock de tasses

Commande
v SET dist:stock:tasse 40

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Attendre qu’une réplique confirme

Commande
v WAIT 1 100

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une réplique peut avoir du retard

Le primaire n’attend pas toujours que chaque réplique ait reçu le changement. Cette réplication asynchrone garde les écritures rapides. Elle laisse pourtant les répliques un peu en arrière.

Le retard de réplication est le nombre de changements du journal qu’une réplique n’a pas encore appliqués. Lire sur une réplique en retard donne une valeur plus ancienne.

Mesurer le retard de trois répliques

Code: python
# Le primaire garde un journal. Chaque réplique en a appliqué une partie.
journal = ["stock=40", "stock=38", "stock=35", "stock=30"]
repliques = {"R1": 4, "R2": 2, "R3": 3}
for nom in repliques:
    appliquees = repliques[nom]
    retard = len(journal) - appliquees
    print(nom, "a lu", journal[appliquees - 1], "retard", retard)
# Passez R2 à 4 puis relancez : son retard devient 0.

Choisir la copie la plus récente

Si le primaire s’arrête, le système doit choisir un nouveau primaire parmi les répliques vivantes. C’est le basculement. La bonne candidate est la réplique qui a appliqué le plus de changements.

Un changement que le primaire n’avait envoyé à personne est perdu. C’est le prix de la réplication asynchrone.

Exemple : choisir après une panne

CopieDernier changement appliquéÉtat
Primaire10En panne
Réplique 17Vivante
Réplique 29Vivante
Réplique 39En panne

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une erreur fréquente

Attention

On croit souvent qu’une réplique est une sauvegarde. Ce n’est pas le cas : si quelqu’un efface une ligne par erreur, la réplique l’efface aussi. Gardez en plus des sauvegardes à des dates précises.

À propos de ce labo et de sa source: Lab Valkey : apprendre un magasin clé-valeur compatible Redis, avec expiration, listes et compteurs

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.