M

Suivez vous

Redis, un cache qui va vite

Redis est un moteur de base de données clé-valeur en mémoire.
Il est utilisé pour stocker rapidement des données temporaires comme les caches, les sessions, ou des files d’attente.

Magento 2 peut fonctionner sans Redis, en stockant ses données dans le système de fichiers. Mais Redis apporte un gain de performance significatif, surtout dans des environnements avec plusieurs serveurs front.

📌 À date, Redis reste la solution recommandée par Magento.
Tu peux vérifier les prérequis à jour ici :
👉 System Requirements – Adobe Commerce

Redis dans Magento 2 : pour quoi faire ?

1. Le cache applicatif (backend cache)

Magento peut stocker ses caches dans Redis, ce qui permet d’éviter les écritures disque et de centraliser le tout.
Voici une la liste des caches typiques (fichier env.php) :

'config', 'layout', 'block_html', 'collections', 'reflection',
'db_ddl', 'compiled_config', 'eav', 'customer_notification',
'config_integration', 'config_integration_api',
'graphql_query_resolver_result', 'config_webservice', 'translate'

🔍 Focus sur le cache config :

  • C’est l’un des plus lents à régénérer.
  • Magento le vide automatiquement lors d’un setup:upgrade.
  • Inutile donc de le “flush” manuellement dans la foulée.
  • En local, ne le vide que si nécessaire : après une modif XML (hors layout), une maj Composer, ou en cas de bug étrange.

2. Les sessions

Utiliser Redis pour stocker les sessions permet de les centraliser.
Si tu stockes les sessions sur disque, chaque front a ses propres fichiers — donc un utilisateur peut se retrouver déconnecté s’il change de serveur entre deux requêtes.

Avec Redis, toutes les sessions sont partagées entre les fronts, et le comportement est cohérent.

ℹ️ Important : une seule instance Redis par projet Magento. Pas une par front.

3. Le Full Page Cache (FPC)

Magento peut stocker le FPC dans Redis. Ça fonctionne, mais Varnish est plus performant et reste la solution préférée sur les sites à fort trafic.

On abordera ce sujet en détail dans un prochain article.

Et en local ? Redis avec Docker

En développement, Redis est facile à mettre en place avec Docker.

Si tu n’utilises pas Warden ou un stack préconfiguré :

  • Tu peux lancer l’image officielle Redis, sans modification.
  • Inutile de mapper un volume : Redis est un cache, donc tu peux repartir de zéro à chaque fois que tu redémarres ton environnement.

💡 Une ligne docker-compose suffit pour le faire tourner efficacement en local.

Redis + dev local : désactiver les caches ?

En local, désactiver les caches est souvent recommandé pour travailler plus facilement.
Mais tout dépend de ce que tu fais :

Désactive tout quand :

  • tu développes des fonctionnalités métier,
  • tu veux éviter les faux positifs liés au cache,
  • tu bosses en solo et veux des retours instantanés.

⚠️ Réactive certains caches quand :

  • tu travailles sur des optimisations (cache de blocs, sections dynamiques…),
  • tu cherches à reproduire un bug de prod potentiellement lié au cache (même le FPC peut jouer un rôle).

👉 L’idée n’est pas de tout désactiver ou tout garder activé, mais d’adapter la configuration à ton besoin du moment.

En résumé

  • Redis améliore la gestion du cache et des sessions sur Magento 2
  • Il est recommandé pour :
    • le cache back (backend_cache)
    • les sessions
    • le FPC (mais Varnish reste plus performant)
  • Le cache config doit être vidé avec précaution : Magento s’en charge au bon moment
  • En local, Redis fonctionne très bien avec Docker (sans volume), et les caches peuvent être activés ou non selon le contexte