hefestoapicontainer

Almacenamiento en redis

Puedes utilizar la directiva RedisSet para almacenar datos en redis. Por ejemplo:

    RedisSet::run($state,[
        'key' => 'user:345',
        'expire' => 86400,//1 day
        'value' => [ 
            'name' =>  'Pepito',
            'age' => 45
        ]
    ]);

El value siempre será un array. Al pasar los segundos de expiración, el valor desaparecerá de redis. Por defecto, los valores almacenados en Redis, sólo serán accesibles desde la API, si quieres que se pueda acceder a esos valores desde otras APIs, puedes emplear el parámetro global y pasarlo a true.

Luego puedes leer un dato almacenado mediante la directiva RedisGet. Por ejemplo:

    RedisGet::run($state,[
        'key' => 'user:345',
        'target' => 'userInfo'
    ]);
    $userInfo = $state->memory()->get('userInfo');

Es decir, el parámetro target, establece el lugar en memory donde se escribirá el resultado.

Si el dato se guardó con el global a true, también tendrás que pasar ese mismo parámetro en RedisGet.

En caso de que quieras interacturar con Redis directamente, para utilizar cualquiera de sus tipos de datos, transacciones, etc. Puedes conseguir una conexión a predis así:

    $client = new \Predis\Client([
        'scheme' => 'tcp',
        'host'   => config('database.redis.default.host'),
        'port'   => config('database.redis.default.port'),
        'database' => config('database.redis.default.database')
    ]);

Ir a la home