Transactions Redis

RedisRedisBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous explorerez les transactions Redis. Les transactions Redis vous permettent d'exécuter un groupe de commandes comme une seule opération atomique, assurant ainsi la cohérence des données. Vous apprendrez comment démarrer une transaction avec la commande MULTI, mettre des commandes en file d'attente, puis exécuter ou abandonner la transaction. Vous vous entraînerez à définir des clés (keys), à obtenir des valeurs (values) et à incrémenter des compteurs au sein des transactions.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") redis/RedisGroup -.-> redis/store_string("Set String Value") redis/RedisGroup -.-> redis/fetch_string("Get String Value") redis/RedisGroup -.-> redis/increment_int("Increase Integer Value") subgraph Lab Skills redis/access_cli -.-> lab-552106{{"Transactions Redis"}} redis/store_string -.-> lab-552106{{"Transactions Redis"}} redis/fetch_string -.-> lab-552106{{"Transactions Redis"}} redis/increment_int -.-> lab-552106{{"Transactions Redis"}} end

Démarrage d'une transaction Redis

Dans cette étape, vous apprendrez à 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 seule unité 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 (transaction mode). Toutes les commandes suivantes que vous entrerez 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é (key) nommée mykey avec la valeur (value) 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 (transaction queue). Elle ne sera pas exécutée tant que nous n'aurons pas explicitement demandé à Redis de le faire.

N'oubliez pas de quitter l'environnement redis-cli pour vous assurer que la commande est enregistrée :

exit

Mise en file d'attente de commandes supplémentaires et exécution de la transaction

Dans cette étape, vous ajouterez d'autres commandes à la file d'attente de la transaction et exécuterez ensuite l'ensemble de la transaction en utilisant la commande EXEC.

Reconnectez-vous au serveur Redis :

redis-cli

Puisque nous avons une transaction existante, nous devons ré-entrer en mode transactionnel (transaction mode) :

MULTI

Maintenant, mettons en file d'attente une commande pour récupérer la valeur (value) 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 (counter) nommé mycounter. Si mycounter n'existe pas, Redis le créera et l'initialisera à 0 avant d'incrémenter :

INCR mycounter

Vous devriez voir :

QUEUED

Vous avez maintenant mis en file d'attente plusieurs commandes dans 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

Décomposons 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 de la transaction ont été exécutées de manière atomique.

N'oubliez pas de quitter l'environnement redis-cli pour vous assurer que la commande est enregistrée :

exit

Vérification de 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 (keys) que vous avez définies.

Reconnectez-vous au serveur Redis :

redis-cli

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.

N'oubliez pas de quitter l'environnement redis-cli pour vous assurer que la commande est enregistrée :

exit

Annulation d'une transaction avec DISCARD

Dans cette étape, vous apprendrez à annuler une transaction Redis en utilisant la commande DISCARD. Ceci est utile si vous décidez que vous ne voulez pas exécuter les commandes mises en file d'attente (queued commands).

Tout d'abord, connectez-vous au serveur Redis et démarrez une nouvelle transaction :

redis-cli
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é rejetées (discarded). Pour vérifier, vous pouvez vérifier 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 labo, 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 des commandes en file d'attente, à exécuter des transactions avec EXEC et à annuler des transactions avec DISCARD. Cette connaissance est cruciale pour maintenir la cohérence des données dans Redis lors de l'exécution d'opérations complexes.