← Actualités

Redis persistant : files d'attente, sessions et Horizon qui ne se perdent pas

Actualités 5 min de lecture

Depuis 2024, vous disposez de Redis inclus dans toutes les offres, et cela ne change pas. Mais ce Redis est un cache, et il se comporte comme tel : il repart à vide à chaque redémarrage et, quand il est plein, il supprime les clés les moins utilisées. Pour le cache d'objets de WordPress, c'est exactement ce qu'il faut, car tout ce qu'il stocke peut être recalculé.

Une file d'attente de tâches ou la session d'un utilisateur ne peuvent pas être recalculées. Si le cache se vide, une tâche en attente disparaît sans que personne ne s'en aperçoive, et la personne connectée à votre application doit se reconnecter. C'est pourquoi, jusqu'ici, nous vous recommandions de garder les files d'attente et les sessions dans la base de données, et Horizon, qui ne fonctionne qu'avec Redis, restait de côté.

Désormais, sur les offres Avanza, Max et Elastic, vous pouvez activer un Redis persistant.

Ce qui le rend différent

C'est une instance propre à votre compte. Il s'agit de Valkey 8, compatible avec Redis : les mêmes commandes et les mêmes clients, comme PhpRedis. Et il se comporte comme en ont besoin les files d'attente et les sessions :

  • Il enregistre ses données sur disque chaque seconde. Il les conserve lors d'un redémarrage et, en cas de coupure, on perd au maximum la dernière seconde.
  • Quand il est plein, il ne supprime rien : il refuse les nouvelles écritures avec une erreur. Pour une file d'attente, c'est ce que vous voulez : que l'application vous prévienne, plutôt qu'une tâche disparaisse en silence.
  • Il fait partie des sauvegardes quotidiennes, comme le reste de vos fichiers.
  • C'est vous qui choisissez la mémoire : 64 Mo par défaut, jusqu'à 128 Mo sur Avanza, 256 Mo sur Max et 512 Mo sur Elastic. Les files d'attente et les sessions occupent peu de place : 64 Mo suffisent pour la plupart des applications.

Si un usage particulier l'exige, vous pouvez modifier ces deux comportements : désactiver la persistance ou le laisser supprimer les clés les moins utilisées quand il est plein.

L'activer et s'y connecter

Il s'active dans Hébergement → votre service → Gestionnaire de paquets, sur la carte Redis persistant. Vous y voyez la mémoire qu'il utilise et l'espace qu'il occupe sur disque, et vous pouvez modifier ses réglages, le redémarrer, le vider ou le désactiver.

La connexion se fait par socket et sans mot de passe, car seul l'utilisateur de votre compte peut l'ouvrir. Dans Laravel, il suffit de quelques lignes dans le .env, avec votre utilisateur cPanel à la place de USUARIO :

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

QUEUE_CONNECTION=redis
SESSION_DRIVER=redis

Vous pouvez utiliser les deux Redis en même temps : le cache sur le Redis habituel, et les files d'attente et les sessions sur le Redis persistant. Le guide explique comment les séparer dans config/database.php.

Horizon, enfin

Horizon a besoin de deux choses : des files d'attente dans Redis et un processus qui le maintienne en marche. La première, c'est le Redis persistant ; la seconde, les processus persistants, qui arrivent en même temps. Avec les deux, Horizon fonctionne sur votre hébergement, avec son tableau de bord et ses métriques.

Gardez à l'esprit que le Redis persistant tourne comme un processus de plus de votre compte, dans la limite de ses ressources, et qu'il occupe l'une des places de processus persistants de l'offre : sur Avanza, Redis et Horizon en utilisent deux sur trois.

Vous trouverez le pas à pas, avec la connexion depuis Laravel, l'utilisation conjointe avec le Redis de cache et l'installation d'Horizon, dans le guide du Redis persistant.

Nous continuons de nous améliorer.

Découvrez ce sur quoi nous travaillons en ce moment ou écrivez-nous s'il vous manque quelque chose.