Introducción
En este laboratorio, explorará las transacciones de Redis. Las transacciones de Redis le permiten ejecutar un grupo de comandos como una operación única y atómica, garantizando la consistencia de los datos. Aprenderá a iniciar una transacción con el comando MULTI, a poner comandos en cola y luego a ejecutar o descartar la transacción. Practicará el establecimiento de claves, la obtención de valores y el incremento de contadores dentro de las transacciones.
Inicio de una Transacción de Redis
En este paso, aprenderá cómo iniciar una transacción en Redis utilizando el comando MULTI. Las transacciones de Redis aseguran que una serie de comandos se ejecuten como una unidad única y atómica. Esto significa que todos los comandos tienen éxito o ninguno lo hace, garantizando la integridad de los datos.
Primero, conéctese al servidor Redis usando el comando redis-cli en su terminal:
redis-cli
Ahora que está en el entorno redis-cli, puede comenzar una transacción. Escriba el siguiente comando y presione Enter:
MULTI
Debería ver la siguiente salida:
OK
Esto confirma que Redis ha entrado en modo de transacción. Cualquier comando subsiguiente que ingrese se pondrá en cola y se ejecutará junto cuando use el comando EXEC.
Pongamos en cola nuestro primer comando. Estableceremos una clave llamada mykey con el valor myvalue. Escriba el siguiente comando y presione Enter:
SET mykey "myvalue"
La salida debería ser:
QUEUED
Esto indica que el comando SET se ha agregado exitosamente a la cola de la transacción. No se ejecutará hasta que le digamos explícitamente a Redis que lo haga.
Mantenga abierto el entorno redis-cli para el siguiente paso.
Poner en Cola Más Comandos y Ejecutar la Transacción
En este paso, agregará más comandos a la cola de la transacción y luego ejecutará la transacción completa usando el comando EXEC.
Ahora, pongamos en cola un comando para recuperar el valor de mykey:
GET mykey
Debería ver:
QUEUED
A continuación, agreguemos otro comando para establecer una clave diferente, anotherkey, con el valor anothervalue:
SET anotherkey "anothervalue"
La salida debería ser:
QUEUED
Finalmente, pongamos en cola un comando INCR para incrementar un contador llamado mycounter. Si mycounter no existe, Redis lo creará y lo inicializará en 0 antes de incrementarlo:
INCR mycounter
Debería ver:
QUEUED
Ahora ha puesto en cola varios comandos dentro de la transacción. Para ejecutarlos todos a la vez, use el comando EXEC:
EXEC
La salida debería parecerse a esto:
1) OK
2) "myvalue"
3) OK
4) (integer) 1
Analicemos la salida:
1) OK: Resultado del comandoSET mykey "myvalue".2) "myvalue": Resultado del comandoGET mykey.3) OK: Resultado del comandoSET anotherkey "anothervalue".4) (integer) 1: Resultado del comandoINCR mycounter.
Todos los comandos dentro de la transacción se ejecutaron atómicamente.
Mantenga abierto el entorno redis-cli para el siguiente paso.
Verificación de la Ejecución de la Transacción
En este paso, verificará que los comandos de la transacción anterior se ejecutaron correctamente recuperando los valores de las claves que estableció.
Para verificar los valores, use el comando GET para cada clave:
GET mykey
GET anotherkey
GET mycounter
Debería ver la siguiente salida:
"myvalue"
"anothervalue"
"1"
Esto confirma que la transacción se ejecutó correctamente y que los valores de las claves se actualizaron según lo esperado.
Mantenga abierto el entorno redis-cli para el siguiente paso.
Cancelar una Transacción con DISCARD
En este paso, aprenderá cómo cancelar una transacción de Redis usando el comando DISCARD. Esto es útil si decide que no desea ejecutar los comandos en cola.
Primero, conéctese al servidor Redis e inicie una nueva transacción:
MULTI
Ahora, pongamos en cola algunos comandos:
SET mykey "newvalue"
INCR mycounter
Debería ver la respuesta QUEUED para cada comando.
Ahora, en lugar de ejecutar la transacción, cancelémosla. Use el comando DISCARD:
DISCARD
Debería ver:
OK
Esto confirma que la transacción ha sido cancelada y que todos los comandos en cola han sido descartados. Para verificar, puede comprobar el valor de mykey y mycounter. No deberían haberse actualizado.
Recuerde salir del entorno redis-cli para asegurarse de que el comando se registra:
exit
Resumen
En este laboratorio, ha aprendido a utilizar transacciones de Redis para ejecutar múltiples comandos de forma atómica. Ha practicado el inicio de transacciones con MULTI, la puesta en cola de comandos, la ejecución de transacciones con EXEC y la cancelación de transacciones con DISCARD. Este conocimiento es crucial para mantener la consistencia de los datos en Redis al realizar operaciones complejas.


