Contenu du cours
Introduction à Redis
Introduction à Redis
Transactions
Toutes les commandes dans la transaction sont exécutées simultanément. Si l'une des commandes échoue, aucune d'elles ne sera exécutée. Cela garantit la cohérence des données en empêchant les modifications partielles ou invalides, même si des erreurs se produisent.
Comment les transactions sont utilisées
Les transactions sont couramment appliquées lorsque plusieurs opérations sur les données doivent être effectuées ensemble, comme incrémenter un compteur et écrire des données associées à une autre clé. L'utilisation des transactions garantit que soit toutes les opérations sont complétées, soit aucune, maintenant ainsi l'intégrité des données.
Commandes de base pour les transactions
Pour démarrer une transaction dans Redis, utilisez la commande MULTI
. Cela informe Redis que toutes les commandes suivantes doivent faire partie de la transaction.
Une fois que vous avez émis MULTI
, Redis met en file d'attente les commandes que vous souhaitez inclure dans la transaction.
Dans cet exemple, les commandes SET key1 "value1"
et SET key2 "value2"
ne sont pas exécutées immédiatement. Au lieu de cela, elles sont ajoutées à la file d'attente de transaction et exécutées ensemble lorsque la commande EXEC
est appelée.
Exécution d'une Transaction
Pour exécuter toutes les commandes dans la transaction, utilisez la commande EXEC
. Cela exécute chaque commande en file d'attente dans la transaction.
Après avoir appelé EXEC
, les deux opérations SET
seront effectuées.
Annulation d'une Transaction
Si vous décidez de annuler une transaction avant l'exécution, utilisez la commande DISCARD
. Cela efface toutes les commandes dans la file d'attente de transaction, garantissant qu'elles ne seront pas exécutées.
Après avoir appelé DISCARD
, toutes les commandes ajoutées à la transaction depuis MULTI
seront annulées et ne seront pas exécutées.
Surveillance des clés pendant une transaction
Pendant une transaction, les commandes sont mises en file d'attente mais ne sont pas exécutées immédiatement. La commande WATCH
peut être utilisée pour surveiller des clés spécifiques. Si l'une de ces clés est modifiée avant que la transaction ne soit exécutée, la transaction sera annulée pour éviter les conflits de données.
Dans cet exemple, si la valeur de key1
change avant que la commande EXEC
ne soit appelée, la transaction ne sera pas exécutée. Cela garantit la cohérence des données, surtout lorsque plusieurs clients tentent de modifier la même clé simultanément.
1. Que se passe-t-il si l'une des commandes dans une transaction Redis échoue ?
2. Quelle commande doit être utilisée pour démarrer une transaction Redis ?
Merci pour vos commentaires !