Introduction
Dans ce laboratoire, vous allez explorer les transactions Redis. Les transactions Redis vous permettent d'exécuter un groupe de commandes comme une opération unique et atomique, garantissant ainsi la cohérence des données. Vous apprendrez à démarrer une transaction avec la commande MULTI, à mettre des commandes en file d'attente, puis à exécuter ou à annuler la transaction. Vous pratiquerez la définition de clés, la récupération de valeurs et l'incrémentation de compteurs au sein des transactions.
Démarrer une transaction Redis
Dans cette étape, vous apprendrez comment initier une transaction dans Redis en utilisant la commande MULTI. Les transactions Redis garantissent qu'une série de commandes sont exécutées comme une unité unique et atomique. Cela signifie que soit toutes les commandes réussissent, soit aucune ne réussit, garantissant ainsi l'intégrité des données.
Tout d'abord, connectez-vous au serveur Redis en utilisant la commande redis-cli dans votre terminal :
redis-cli
Maintenant que vous êtes dans l'environnement redis-cli, vous pouvez commencer une transaction. Tapez la commande suivante et appuyez sur Entrée :
MULTI
Vous devriez voir la sortie suivante :
OK
Cela confirme que Redis est entré en mode transactionnel. Toutes les commandes que vous entrerez par la suite seront mises en file d'attente et exécutées ensemble lorsque vous utiliserez la commande EXEC.
Mettons en file d'attente notre première commande. Nous allons définir une clé nommée mykey avec la valeur myvalue. Tapez la commande suivante et appuyez sur Entrée :
SET mykey "myvalue"
La sortie devrait être :
QUEUED
Cela indique que la commande SET a été ajoutée avec succès à la file d'attente de la transaction. Elle ne sera exécutée que lorsque nous indiquerons explicitement à Redis de le faire.
Laissez l'environnement redis-cli ouvert pour l'étape suivante.
Mettre en file d'attente d'autres commandes et exécuter la transaction
Dans cette étape, vous ajouterez d'autres commandes à la file d'attente de la transaction, puis vous exécuterez la transaction entière en utilisant la commande EXEC.
Maintenant, mettons en file d'attente une commande pour récupérer la valeur de mykey :
GET mykey
Vous devriez voir :
QUEUED
Ensuite, ajoutons une autre commande pour définir une clé différente, anotherkey, avec la valeur anothervalue :
SET anotherkey "anothervalue"
La sortie devrait être :
QUEUED
Enfin, mettons en file d'attente une commande INCR pour incrémenter un compteur nommé mycounter. Si mycounter n'existe pas, Redis le créera et l'initialisera à 0 avant de l'incrémenter :
INCR mycounter
Vous devriez voir :
QUEUED
Vous avez maintenant mis en file d'attente plusieurs commandes au sein de la transaction. Pour les exécuter toutes en même temps, utilisez la commande EXEC :
EXEC
La sortie devrait ressembler à ceci :
1) OK
2) "myvalue"
3) OK
4) (integer) 1
Analysons la sortie :
1) OK: Résultat de la commandeSET mykey "myvalue".2) "myvalue": Résultat de la commandeGET mykey.3) OK: Résultat de la commandeSET anotherkey "anothervalue".4) (integer) 1: Résultat de la commandeINCR mycounter.
Toutes les commandes au sein de la transaction ont été exécutées de manière atomique.
Laissez l'environnement redis-cli ouvert pour l'étape suivante.
Vérifier l'exécution de la transaction
Dans cette étape, vous vérifierez que les commandes de la transaction précédente ont été exécutées correctement en récupérant les valeurs des clés que vous avez définies.
Pour vérifier les valeurs, utilisez la commande GET pour chaque clé :
GET mykey
GET anotherkey
GET mycounter
Vous devriez voir la sortie suivante :
"myvalue"
"anothervalue"
"1"
Cela confirme que la transaction a été exécutée avec succès et que les valeurs des clés ont été mises à jour comme prévu.
Laissez l'environnement redis-cli ouvert pour l'étape suivante.
Annuler une transaction avec DISCARD
Dans cette étape, vous apprendrez comment annuler une transaction Redis en utilisant la commande DISCARD. Ceci est utile si vous décidez de ne pas exécuter les commandes mises en file d'attente.
Tout d'abord, connectez-vous au serveur Redis et démarrez une nouvelle transaction :
MULTI
Maintenant, mettons en file d'attente quelques commandes :
SET mykey "newvalue"
INCR mycounter
Vous devriez voir la réponse QUEUED pour chaque commande.
Maintenant, au lieu d'exécuter la transaction, annulons-la. Utilisez la commande DISCARD :
DISCARD
Vous devriez voir :
OK
Cela confirme que la transaction a été annulée et que toutes les commandes mises en file d'attente ont été écartées. Pour vérifier, vous pouvez consulter la valeur de mykey et mycounter. Elles n'auraient pas dû être mises à jour.
N'oubliez pas de quitter l'environnement redis-cli pour vous assurer que la commande est enregistrée :
exit
Résumé
Dans ce laboratoire, vous avez appris à utiliser les transactions Redis pour exécuter plusieurs commandes de manière atomique. Vous vous êtes entraîné à démarrer des transactions avec MULTI, à mettre en file d'attente des commandes, à exécuter des transactions avec EXEC et à annuler des transactions avec DISCARD. Ces connaissances sont cruciales pour maintenir la cohérence des données dans Redis lors de l'exécution d'opérations complexes.


