Categor铆as: [Curso] Redis

09.- Redis manejo de transacciones en PHP?

Las transacciones se inician con multi(). En Redis hay dos modos transaccionales:

REDIS:MULTI: El bloque de instrucciones se ejecuta como una 煤nica transacci贸n. Este es el valor predeterminado.
REDIS:PIPELINE: El bloque de instrucciones se transmite m谩s r谩pido al servidor, pero sin que quede garantizada la atomicidad.
Para finalizar la transacci贸n usaremos:
exec(): ejecuta las instrucciones de una transacci贸n.
discard(): cancela las instrucciones de una transacci贸n.

<?php
/*
TRANSACTIONS
Las transacciones se inician con multi(). En Redis hay dos modos transaccionales:

REDIS:MULTI: El bloque de instrucciones se ejecuta como una 煤nica transacci贸n. Este es el valor predeterminado.
REDIS:PIPELINE: El bloque de instrucciones se transmite m谩s r谩pido al servidor, pero sin que quede garantizada la atomicidad.
Para finalizar la transacci贸n usaremos:

exec(): ejecuta las instrucciones de una transacci贸n.
discard(): cancela las instrucciones de una transacci贸n.
*/
//Creamos la instancia de redis
$redis = new Redis();
//Nos conectamos a redis
$conn = $redis->connect('127.0.0.1', 6379);
//Si la conexion fue exitosa mostramos este texto
if ($conn) {
    echo "Conexion exitosa: estas conectado a Redis...<br/>";
}
//Si la conexion no fue exitosa mostramos este texto y nos salimos
else {
    echo "No se pudo conectar con la base de datos de Redis :(";
    exit();
}
//Inicializamos la transaccion
$tran1 = $redis->multi();
//Agregamos a la transaccion 2 llaves con sus respectivos valores
$tran1->set("a", "1");
$tran1->set("b", "2");
//Ejecutamos la transaccion
$tran1->exec();
//Mostramos los resultados despues de la transaccion
echo "<br/><strong>Despues de hacer exec()</strong><br/>";
echo "a:" . $redis->get("a") . " b:" . $redis->get("b") . "<br/><br/>";


$tran2 = $redis->multi();
$tran2->set("a", "3");
$tran2->set("b", "4");
//Desacarta la actual transaccion y deja los datos previos a la transaccion actual
$tran2->discard();
//Mostramos los resultados despues de discard
echo "<strong>Despues de hacer discard()</strong><br/>";
echo "a:" . $redis->get("a") . " b:" . $redis->get("b") . "<br/>";

En mi caso esta es la url donde puedo ver el resultado
http://localhost/redis4/transaccion.php

Eugenio Chaparro

Compartir
Publicado por
Eugenio Chaparro

Entradas recientes

馃煝Editar c贸digo de un m贸dulo en Dolibarr [04]

馃煝Editar c贸digo de un m贸dulo en Dolibarr [04]

En este tutorial vamos editar el c贸digo de nuestro m贸dulo personas para poder personalizar algunas…

2 meses hace
馃煝Crear un sub_m贸dulo en Dolibarr [03]

馃煝Crear un sub_m贸dulo en Dolibarr [03]

En este tutorial vamos a crear un sub m贸dulo llamado seguridad que ser谩 muy parecido…

2 meses hace
馃煝Modificar un m贸dulo en Dolibarr [02]

馃煝Modificar un m贸dulo en Dolibarr [02]

En este tutorial aprenderemos a editar el objeto personas del modulo persona que creamos en…

2 meses hace
馃煝Constructor de m贸dulos en Dolibarr

馃煝Constructor de m贸dulos en Dolibarr

Como mencionamos anteriormente Dolibarr es un proyecto realizado sobre la base de una pol铆tica clara:…

2 meses hace
馃煝Tickets en Dolibarr [19]

馃煝Tickets en Dolibarr [19]

Los ticket en dolibarr nos ayudan a comunicar inconveniente en nuestros productos y servicios dentro…

2 meses hace
馃煝Agenda en Dolibarr [18]

馃煝Agenda en Dolibarr [18]

Las agendas en dolibarr nos ayudan a ver las actividades realizadas en proceso y por…

2 meses hace