09. Redis manejo de transacciones en PHP

09.- Redis manejo de transacciones en PHP?

09. %2BRedis%2Bmanejo%2Bde%2Btransacciones%2Ben%2BPHP

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

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

En Programador Novato vivimos de los anuncios, hemos detectado que está utilizando extensiones para bloquear anuncios. Ayudanos deshabilitando tu bloqueador de anuncios. :)