Comando Redis Watch

Comando Redis Watch
Si se toma en serio Redis, querrá utilizar transacciones para administrar sus datos. Las transacciones redis no son muy diferentes de las transacciones en una base de datos relacional.

Una transacción de la base de datos se refiere a una sola unidad de trabajo compuesta por consultas individuales a múltiples. En los casos, una operación solo se puede clasificar como una transacción si hay algún cambio en la base de datos.

No nos preocuparemos por eso, pero aprenderemos cómo usar el comando de reloj junto con las transacciones de Redis para esta.

¿Qué son las transacciones??

En Redis, las transacciones se componen de cuatro comandos principales: Watch, Exec, Descart y Multi.

Usando los comandos anteriores, puede abrir un bloque y agregar múltiples comandos a la vez. Una vez completado, ejecuta los comandos como una sola unidad.

Para que una transacción sea exitosa, Redis asegura que:

  1. Todos los comandos especificados en una unidad de transacción se ejecutan consecutivamente. De ahí el primer recurso, la primera carrera.
  2. Todos los comandos en una unidad de transacción deben ejecutarse correctamente. Si uno de los comandos en la unidad falla, todo el bloque de transacciones también falla. Esta característica se conoce como ejecución de comandos atómicos
  3. Tercero, los comandos en una transacción se serializan. Por lo tanto, un cliente no puede ser un servidor mientras se ejecuta una unidad de transacción.

Redis crea transacción

Crea una unidad de transacción usando el comando múltiple. El comando múltiple volverá bien. Puede seguir adelante y agregar todos los comandos de transacción uno tras otro.

En lugar de ejecutar los comandos, Redis los pondrá en cola en inserción hasta que los llame.

Un ejemplo es como se muestra a continuación:

127.0.0.1: 6379> multi
De acuerdo

Redis ejecutar la unidad de transacción

Como se mencionó, Redis pondrá en cola los comandos en una unidad de transacción hasta que los ejecute manualmente.

Podemos hacer esto usando el comando exec. Esto le dice a Redis que ejecute todos los comandos en cola en el orden de inserción.

Un uso de ejemplo es como se muestra a continuación:

127.0.0.1: 6379> Establecer Newkey "100"
PUESTO EN COLA
127.0.0.1: 6379> increment
PUESTO EN COLA
127.0.0.1: 6379> Obtén NewKey
PUESTO EN COLA
127.0.0.1: 6379>

Notará que cada comando ejecutado está en cola. Un comando en cola es un comando que está programado para ejecutarse después de que se llame a Exec.

Para ejecutarlo, llame a ejecutivo como:

127.0.0.1: 6379> exec
1) OK
2) (entero) 101
3) "101"

Esto debería ejecutar todos los comandos y devolver los valores resultantes.

Redis eliminar la cola de comando

Supongamos que desea limpiar su cola de comandos y descargar todos los comandos programados? Para eso, puede usar el comando de descarte como se muestra:

127.0.0.1: 6379> multi
De acuerdo
127.0.0.1: 6379> Establecer Newkey "100"
PUESTO EN COLA
127.0.0.1: 6379> increment
PUESTO EN COLA
127.0.0.1: 6379> Obtén NewKey
PUESTO EN COLA
127.0.0.1: 6379> Descartar
De acuerdo

Después de ejecutar el comando de descarte, Redis devolverá bien y cerrará la unidad de transacción.

Comando Redis Watch

El comando de reloj en Redis le permite implementar la función de verificación y conjunto. Los comandos de reloj aceptan las teclas Redis como parámetros y los controlan.

Si alguna de las teclas especificadas se cambia antes de llamar al comando exec, Redis termina automáticamente la transacción y devuelve una respuesta nula.

Tome el ejemplo a continuación:

var = Get mykey
var = var + 1
Establecer mykey $ var

En el ejemplo anterior, tenemos una operación que aumenta el valor de una clave por 1. Por supuesto, este no es un problema si solo un solo cliente realiza dicha operación.

Sin embargo, si varios clientes intentan ejecutar la operación anterior simultáneamente, se produce una condición de carrera y devuelve un valor no válido.

Podemos resolver esto observando la clave como se muestra:

Mira mykey
var = Get mykey
var = var + 1
MULTI
Establecer mykey $ var
Ejecución

Aquí, si un cliente opera y el valor de la clave se cambia antes de ejecutar la transacción, la ejecución falla.

Para eliminar todas las teclas observadas, use el comando no.

Conclusión

Este artículo discutido usando y trabajando con transacciones en una base de datos Redis. Consulte la documentación para descubrir más.

Gracias por leer!!