Transaction Redis
Les transactions Redis peuvent exécuter plusieurs commandes à la fois et sont accompagnées des deux garanties importantes suivantes :
Une transaction est une opération unique et isolée : au sein d'une transaction Toutes les commandes seront sérialisées et exécutées dans l'ordre. Lors de l'exécution de la transaction, celle-ci ne sera pas interrompue par les demandes de commandes envoyées par d'autres clients.
Une transaction est une opération atomique : soit toutes les commandes de la transaction sont exécutées, soit aucune d'entre elles n'est exécutée.
Une transaction passera par les trois étapes suivantes du début à l'exécution :
Démarrer la transaction.
Commande pour rejoindre la file d'attente.
Exécutez la transaction.
Instance
Ce qui suit est un exemple de transaction. Il démarre une transaction avec MULTI puis met plusieurs commandes en file d'attente. la transaction, et enfin la transaction est déclenchée par la commande EXEC, et toutes les commandes de la transaction sont exécutées ensemble :
redis 127.0.0.1:6379> MULTI OK redis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days" QUEUED redis 127.0.0.1:6379> GET book-name QUEUED redis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series" QUEUED redis 127.0.0.1:6379> SMEMBERS tag QUEUED redis 127.0.0.1:6379> EXEC 1) OK 2) "Mastering C++ in 21 days" 3) (integer) 3 4) 1) "Mastering Series" 2) "C++" 3) "Programming"
Les commandes de transaction Redis
sont répertoriées dans le tableau suivant Commandes liées aux transactions Redis :
序号 | 命令及描述 |
---|---|
1 | DISCARD 取消事务,放弃执行事务块内的所有命令。 |
2 | EXEC 执行所有事务块内的命令。 |
3 | MULTI 标记一个事务块的开始。 |
4 | UNWATCH 取消 WATCH 命令对所有 key 的监视。 |
5 | WATCH key [key ...] 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。 |