← Novedades

Redis persistente: colas, sesiones y Horizon que no se pierden

Novedades 4 min de lectura

Desde 2024 tienes Redis incluido en todos los planes, y sigue igual. Pero ese Redis es una caché, y se comporta como tal: empieza vacío cada vez que se reinicia y, cuando se llena, descarta las claves que menos se usan. Para la caché de objetos de WordPress es justo lo que hace falta, porque todo lo que guarda se puede volver a calcular.

Una cola de trabajos o la sesión de un usuario no se pueden volver a calcular. Si la caché se vacía, un trabajo pendiente desaparece sin que nadie se entere y quien estaba dentro de tu aplicación tiene que volver a entrar. Por eso hasta ahora te recomendábamos dejar colas y sesiones en la base de datos, y Horizon, que solo trabaja con Redis, se quedaba fuera.

Ahora, en los planes Avanza, Max y Elástico, puedes activar un Redis persistente.

Qué lo hace distinto

Es una instancia propia de tu cuenta. Es Valkey 8, compatible con Redis: los mismos comandos y los mismos clientes, como PhpRedis. Y se comporta como necesitan las colas y las sesiones:

  • Guarda sus datos en disco cada segundo. Al reiniciarse los conserva, y ante un corte se pierde como mucho el último segundo.
  • Al llenarse no borra nada: rechaza las escrituras nuevas con un error. En una cola es lo que quieres, que la aplicación avise y no que un trabajo desaparezca en silencio.
  • Entra en las copias de seguridad diarias, como el resto de tus ficheros.
  • La memoria la eliges tú: 64 MB por defecto, hasta 128 MB en Avanza, 256 MB en Max y 512 MB en Elástico. Colas y sesiones ocupan poco: 64 MB alcanzan para la mayoría de aplicaciones.

Si un uso concreto lo pide, puedes cambiar los dos comportamientos: quitarle la persistencia o dejar que descarte lo menos usado al llenarse.

Activarlo y conectarlo

Se activa en Hosting → tu servicio → Gestor de paquetes, en la tarjeta Redis persistente. Ahí mismo ves la memoria que usa y lo que ocupa en disco, y puedes cambiar sus ajustes, reiniciarlo, vaciarlo o desactivarlo.

Se conecta por socket y sin contraseña, porque solo el usuario de tu cuenta puede abrirlo. En Laravel son unas pocas líneas del .env, con tu usuario de cPanel en lugar de USUARIO:

REDIS_CLIENT=phpredis
REDIS_HOST=/home/USUARIO/.hostsuar/redis/redis.sock
REDIS_PORT=0

QUEUE_CONNECTION=redis
SESSION_DRIVER=redis

Puedes usar los dos Redis a la vez: la caché en el Redis de siempre y las colas y las sesiones en el persistente. En la guía tienes cómo separarlos en config/database.php.

Horizon, por fin

Horizon necesita dos cosas: colas en Redis y un proceso que lo mantenga en marcha. La primera es el Redis persistente; la segunda, los procesos persistentes, que llegan a la vez. Con los dos, Horizon funciona en tu hosting con su panel y sus métricas.

Ten en cuenta que el Redis persistente corre como un proceso más de tu cuenta, dentro de sus recursos, y ocupa una de las plazas de procesos persistentes del plan: en Avanza, el Redis y Horizon usan dos de las tres.

Tienes el paso a paso, con la conexión desde Laravel, el uso junto al Redis de caché y la instalación de Horizon, en la guía de Redis persistente.

Seguimos mejorando.

Mira en qué estamos trabajando ahora mismo o escríbenos si echas algo en falta.