Ce que tu vas faire
Une base clé-valeur garde une valeur sous un nom, et te la rend quand tu redemandes ce nom. Les sites web en utilisent une pour retenir la session d'un visiteur ou compter les pages vues, parce qu'elle répond en une fraction de milliseconde. Valkey est une base libre qui comprend les mêmes commandes que Redis. Tu vas stocker et relire une valeur, la faire expirer, puis découvrir une liste, un hash et un compteur.
Avant de commencer
Remarque
Appuie sur Démarrer le lab dans la barre en haut de la leçon et attends qu'il indique qu'il est en marche. La base est un service nommé valkey, et le terminal l'atteint par ce nom. Chaque bouton Exécuter ci-dessous tape sa commande dans le terminal de ton lab, l'une après l'autre, dans la même session. Pour suivre les commandes ou taper les tiennes, appuie sur Ouvrir le terminal (nouvel onglet) dans la barre.
1. Dis bonjour à la base
Ce terminal n'a pas de client Valkey. La première commande en fabrique donc un tout petit : une fonction v qui envoie ses mots à la base, sur le port 6379, avec nc, puis affiche la réponse. Cette commande n'affiche rien elle-même. Ensuite, SET stocke une valeur sous une clé et la base répond +OK. GET la redemande : la réponse est $5, la longueur du texte, puis hello à la ligne suivante.
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.
v SET greeting helloAffiché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.
v GET greetingAffiché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.
2. Fais expirer une valeur
EX 5 veut dire que cette clé vit cinq secondes. Dans ton propre terminal, v TTL code affiche le nombre de secondes qui restent, si tu es rapide. Lance la deuxième commande après environ six secondes : la réponse est $-1, la façon dont la base dit qu'il n'y a plus rien. C'est ainsi qu'on fait expirer une session de connexion.
v SET code 1234 EX 5Affiché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.
v GET codeAffiché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.
3. Une liste, un hash et un compteur
RPUSH ajoute à la fin d'une liste et répond par la longueur de la liste, ici :3. HSET stocke des champs nommés dans une seule clé, un hash, et répond par le nombre de champs ajoutés, ici :2. INCR ajoute 1 à un nombre et répond par la nouvelle valeur, ici :1 : appuie encore et tu obtiens :2. Même si mille visiteurs arrivent en même temps, le compte reste exact. Dans ton propre terminal, v LRANGE tasks 0 -1 relit la liste et v HGETALL user:1 relit le hash. Une réponse qui commence par : est un nombre, et une réponse qui commence par $ est un texte.
v RPUSH tasks wake eat codeAffiché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.
v HSET user:1 name Ada born 1815Affiché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.
v INCR visitsAffiché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.
4. Vois ce qui reste
Appuie sur Arrêter le lab dans la barre du lab, puis de nouveau sur Démarrer le lab. Le nouveau terminal a oublié v : appuie sur le premier Exécuter de l'étape 1 pour la refaire, puis sur celui de v GET greeting. La valeur est toujours hello, et code a expiré depuis longtemps. Valkey garde tout en mémoire, ce qui le rend rapide. Il note aussi chaque écriture dans un fichier, sur un volume nommé que la plateforme sauvegarde, pour reconstruire la mémoire au démarrage. Sans ce fichier, la base repartirait vide à chaque fois.
Pour les enseignants
Astuce
Cette leçon est un petit exemple de leçon travaillée dans un lab : les étapes et les boutons Exécuter sont la leçon, et le lab est la copie de chaque élève. Le lab est un petit service et un volume nommé, et rien ici ne se corrige tout seul : l'élève rend les réponses de sa propre session, une clé avec une expiration et TTL, une liste, un hash et un compteur, avec une phrase sur l'effet de l'expiration et sur ce qui reste après un arrêt et un démarrage. Copiez-la dans votre propre module et modifiez-la, ou créez-en une de zéro avec le menu Lab du créateur de leçons.