Redis est un magasin de données en mémoire, extrêmement rapide, largement utilisé dans l’écosystème Laravel pour trois usages principaux : le cache applicatif, la gestion des sessions et les files d’attente (queues). Comprendre où et pourquoi l’utiliser permet d’en tirer un vrai bénéfice de performance sans complexifier inutilement l’infrastructure.
Sommaire
- Qu’est-ce que Redis et pourquoi l’utiliser
- Redis comme cache applicatif
- Redis pour les sessions
- Redis comme pilote de files d’attente
- Points d’attention en production
Qu’est-ce que Redis et pourquoi l’utiliser
Redis (Remote Dictionary Server) stocke ses données en mémoire vive plutôt que sur disque, ce qui lui confère des temps de lecture et d’écriture très inférieurs à une base de données relationnelle classique. Il structure les données sous forme de paires clé-valeur, avec des types plus riches qu’un simple stockage texte : chaînes, listes, ensembles, hachages, ensembles triés. Laravel s’intègre nativement avec Redis via le pilote predis ou l’extension PHP phpredis.
Redis comme cache applicatif
Configuré comme pilote de cache (CACHE_DRIVER=redis ou CACHE_STORE=redis selon la version de Laravel), Redis permet de mettre en cache le résultat de requêtes coûteuses, de fragments de vues, ou de tout calcul répété fréquemment avec les mêmes paramètres. La façade Cache::remember() de Laravel simplifie cette mise en cache avec une durée d’expiration explicite, évitant de recalculer une donnée à chaque requête HTTP.
Contrairement à un cache fichier, Redis reste performant même avec un fort volume de clés et permet un partage du cache entre plusieurs serveurs applicatifs dans une infrastructure horizontalement scalée.
Redis pour les sessions
Par défaut, Laravel peut stocker les sessions utilisateur en fichiers locaux, ce qui pose problème dès que l’application tourne sur plusieurs serveurs (un utilisateur pourrait perdre sa session en changeant de serveur derrière un répartiteur de charge). En configurant SESSION_DRIVER=redis, les sessions sont centralisées et accessibles depuis n’importe quelle instance de l’application, ce qui est indispensable dès qu’une architecture multi-serveurs est envisagée.
Redis comme pilote de files d’attente
Les files d’attente Laravel permettent de différer l’exécution de tâches longues (envoi d’e-mails, génération de rapports, appels à des API tierces) hors du cycle de requête HTTP, pour garder une réponse rapide à l’utilisateur. Redis est l’un des pilotes de queue les plus performants pour Laravel : les jobs sont poussés dans une liste Redis puis consommés par un ou plusieurs processus worker (php artisan queue:work), avec gestion des tentatives, des délais et des échecs via la table failed_jobs.
Points d’attention en production
Redis étant un stockage en mémoire, une perte d’alimentation ou un redémarrage du service peut entraîner une perte de données si la persistance (RDB ou AOF) n’est pas correctement configurée. Pour les files d’attente critiques, il est recommandé de superviser les workers (via Supervisor par exemple) pour qu’ils redémarrent automatiquement en cas d’échec, et de dimensionner la mémoire allouée à Redis en fonction du volume réel de données mises en cache.
Chez Any In IT, l’introduction de Redis dans une stack Laravel fait partie des optimisations que nous évaluons lorsque le volume de trafic ou le nombre de tâches asynchrones d’un projet le justifie.
À lire aussi
Concevoir une architecture microservices avec Laravel et Docker
Découper une application Laravel monolithique en microservices n'est pas toujours la bonne réponse. Principes, apports de Docker et pièges à éviter.
PHP 8.3 : les nouveautés qui comptent pour les développeurs Laravel
PHP 8.3 apporte plusieurs évolutions utiles au quotidien pour un développeur Laravel : constantes typées, readonly amélioré, nouvelles fonctions. Ce qu'il faut retenir.
CI/CD avec GitHub Actions pour un projet Laravel
Automatiser les tests et le déploiement d'une application Laravel avec GitHub Actions : structure d'un workflow, bonnes pratiques et pièges courants.