Las transacciones de Redis pueden ejecutar varios comandos a la vez, con las siguientes dos importantes garantías:
La transacción es una operación aislada separada: todos los comandos de la transacción se serializan y ejecutan secuencialmente. Durante la ejecución de la transacción, no será interrumpida por solicitudes de comando enviadas por otros clientes.
Una transacción es una operación atómica: o se ejecutan todos los comandos de la transacción o no se ejecuta ninguno.
Una transacción pasará por las siguientes tres etapas desde el inicio hasta la ejecución:
- Inicie el negocio.
- Para unirse al equipo.
- Realizar asuntos.
Ejemplo El
siguiente es un ejemplo de una transacción. Primero inicia una transacción con MULTI, luego pone en cola varios comandos en la transacción y finalmente activa la transacción mediante el comando EXEC y ejecuta todos los comandos en la transacción juntos:
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set username lihaitao
QUEUED
127.0.0.1:6379> get username
QUEUED
127.0.0.1:6379> sadd fruit "apple" "banana" "orange"
QUEUED
127.0.0.1:6379> smembers fruit
QUEUED
127.0.0.1:6379> exec
1) OK
2) "lihaitao"
3) (integer) 3
4) 1) "apple"
2) "banana"
3) "orange"
127.0.0.1:6379>
Comandos de transacción de Redis La
siguiente tabla enumera los comandos relacionados con la transacción de Redis:
1 DESCARTAR cancela la transacción y abandona la ejecución de todos los comandos en el bloque de transacción.
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set username lihaitao
QUEUED
127.0.0.1:6379> discard
OK
127.0.0.1:6379> exec
(error) ERR EXEC without MULTI
127.0.0.1:6379>
2 EXEC ejecuta todos los comandos en el bloque de transacciones.
3 MULTI marca el comienzo de un bloque de transacción.
4 UNWATCH cancela la supervisión de todas las teclas mediante el comando WATCH.
5 Tecla WATCH [tecla…] Supervisa una (o más) teclas. Si esta (o estas) teclas se cambian por otros comandos antes de que se ejecute la transacción, la transacción se interrumpirá.