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









Comentarios

Facebook Like

Entri Populer

hackear wifi con kali linux 馃摗

Instalar Netbeans 10 en Windows 10

Instalar netbeans 10 en ubuntu 18.04