Transactions Redis

RedisBeginner
Pratiquer maintenant

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 commande SET mykey "myvalue".
  • 2) "myvalue" : Résultat de la commande GET mykey.
  • 3) OK : Résultat de la commande SET anotherkey "anothervalue".
  • 4) (integer) 1 : Résultat de la commande INCR 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.