Redis en Laravel

eXtreM3

Buenas, estoy intentando incorporar Redis en Laravel y estoy teniendo problemas con el almacenamiento, no funciona y ahora mismo no sé qué más hacer.

Lo que he hecho hasta ahora es:

  • Instalar extensión de PHP. Si ejecuto extension_loaded('redis') devuelve true.
  • Instalar con composer el paquete predis.
  • Cambiar en el .env el valor de la caché por CACHE_DRIVER=redis.
  • Cambiar en el app/config/cache.php el valor de default por 'default' => env('CACHE_DRIVER', 'redis')

El código que tengo para almacenar en caché es este:

$projects = Cache::remember('projects.all', 60, function(){
       return Project::get();
});

Pero a la hora de hacer un keys * en la consola con Redis CLI me dice que no hay ninguna.


El caso es que en el archivo routes tengo este código para saber qué consultas se hacen en cada página

DB::listen(function($sql){
    echo "<pre>".$sql->sql."</pre>";
});

Y cuando entro al listado de proyectos aparece la consulta que se los trae todos, y si recargo la página antes de 60 segundos no aparece. Entiendo que lo que está ocurriendo es que se está guardando en otro lado el resultado de la caché.


Extra info:

  • Versión de PHP 7.4.2
  • Versión de Redis 3.2.100
  • Versión de Laravel 6.2
http://localhost/redis/?info

¿Qué me falta por configurar?

RaymaN

Prueba primero sin Laravel por medio, que puedas usar Redis con normalidad. No te aconsejo usar Predis, es bastante más lenta que la extensión php-redis a secas (https://github.com/phpredis/phpredis).

1 respuesta
eXtreM3

#2 sí además acabo de leer en la docu de laravel 6.2 que desaconsejan predis y mejor usar phpredis. Voy a probar así a ver y comento.

Edit: esto no tira xD, lo miraré con más detenimiento un poco más adelante o cuando tenga un hueco.

1 respuesta
Camp1

#3 es una tontería, pero has probado a borrar la caché del env? Si la tienes cachetada no te la pilla porque esta cogiendo la que ya tenías.

Otra cosilla, yo no cambiaría el default del config.php, si total ya estas indicándole que caché usar en el env.

Y una última más, deja de usar echos xddd. Instalate el debugbar y ahí puedes ver todo lo que se ejecuta, querys, memoria consumida y demás. Tu salud te lo agradecerá.

Si no consigues hacerlo funcionar coméntalo y le echo mañana un ojo, que desde el móvil es un corazón.

Usuarios habituales

  • Camp1
  • eXtreM3
  • RaymaN