Transacciones en Redis

RedisRedisBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, explorarás las transacciones de Redis. Las transacciones de Redis te permiten ejecutar un grupo de comandos como una única operación atómica, asegurando la consistencia de los datos. Aprenderás cómo iniciar una transacción con el comando MULTI, encolar comandos y luego ejecutar o descartar la transacción. Practicarás la configuración de claves (keys), la obtención de valores y el incremento de contadores dentro de las transacciones.


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{{"Transacciones en Redis"}} redis/store_string -.-> lab-552106{{"Transacciones en Redis"}} redis/fetch_string -.-> lab-552106{{"Transacciones en Redis"}} redis/increment_int -.-> lab-552106{{"Transacciones en Redis"}} end

Iniciando una Transacción de Redis

En este paso, aprenderás 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 única unidad atómica. Esto significa que o todos los comandos tienen éxito, o ninguno lo tiene, garantizando la integridad de los datos.

Primero, conéctate al servidor de Redis utilizando el comando redis-cli en tu terminal:

redis-cli

Ahora que estás en el entorno redis-cli, puedes comenzar una transacción. Escribe el siguiente comando y presiona Enter:

MULTI

Deberías ver la siguiente salida:

OK

Esto confirma que Redis ha entrado en modo de transacción. Cualquier comando subsiguiente que ingreses se encolará y se ejecutará en conjunto cuando uses el comando EXEC.

Encolemos nuestro primer comando. Estableceremos una clave (key) llamada mykey con el valor myvalue. Escribe el siguiente comando y presiona Enter:

SET mykey "myvalue"

La salida debería ser:

QUEUED

Esto indica que el comando SET se ha agregado correctamente a la cola de transacciones. No se ejecutará hasta que le indiquemos explícitamente a Redis que lo haga.

Recuerda salir del entorno redis-cli para asegurar que el comando se registre:

exit

Encolando Más Comandos y Ejecutando la Transacción

En este paso, agregarás más comandos a la cola de transacciones y luego ejecutarás toda la transacción utilizando el comando EXEC.

Reconéctate al servidor de Redis:

redis-cli

Dado que tenemos una transacción existente, necesitamos volver a entrar en modo de transacción:

MULTI

Ahora, encolemos un comando para recuperar el valor de mykey:

GET mykey

Deberías 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, encolemos un comando INCR para incrementar un contador llamado mycounter. Si mycounter no existe, Redis lo creará y lo inicializará a 0 antes de incrementarlo:

INCR mycounter

Deberías ver:

QUEUED

Ahora has encolado varios comandos dentro de la transacción. Para ejecutarlos todos a la vez, usa el comando EXEC:

EXEC

La salida debería verse similar a esto:

1) OK
2) "myvalue"
3) OK
4) (integer) 1

Analicemos la salida:

  • 1) OK: Resultado del comando SET mykey "myvalue".
  • 2) "myvalue": Resultado del comando GET mykey.
  • 3) OK: Resultado del comando SET anotherkey "anothervalue".
  • 4) (integer) 1: Resultado del comando INCR mycounter.

Todos los comandos dentro de la transacción se ejecutaron atómicamente.

Recuerda salir del entorno redis-cli para asegurar que el comando se registre:

exit

Verificando la Ejecución de la Transacción

En este paso, verificarás que los comandos en la transacción anterior se ejecutaron correctamente recuperando los valores de las claves (keys) que estableciste.

Reconéctate al servidor de Redis:

redis-cli

Para verificar los valores, usa el comando GET para cada clave:

GET mykey
GET anotherkey
GET mycounter

Deberías 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 como se esperaba.

Recuerda salir del entorno redis-cli para asegurar que el comando se registre:

exit

Cancelando una Transacción con DISCARD

En este paso, aprenderás cómo cancelar una transacción de Redis utilizando el comando DISCARD. Esto es útil si decides que no quieres ejecutar los comandos encolados.

Primero, conéctate al servidor de Redis e inicia una nueva transacción:

redis-cli
MULTI

Ahora, encolemos algunos comandos:

SET mykey "newvalue"
INCR mycounter

Deberías ver la respuesta QUEUED para cada comando.

Ahora, en lugar de ejecutar la transacción, vamos a cancelarla. Usa el comando DISCARD:

DISCARD

Deberías ver:

OK

Esto confirma que la transacción ha sido cancelada y que todos los comandos encolados han sido descartados. Para verificarlo, puedes comprobar el valor de mykey y mycounter. No deberían haberse actualizado.

Recuerda salir del entorno redis-cli para asegurar que el comando se registre:

exit

Resumen

En este laboratorio, has aprendido cómo usar las transacciones de Redis para ejecutar múltiples comandos de forma atómica. Practicaste iniciar transacciones con MULTI, encolar comandos, ejecutar transacciones con EXEC y cancelar transacciones con DISCARD. Este conocimiento es crucial para mantener la consistencia de los datos en Redis al realizar operaciones complejas.