Hébergement web

Redis et Memcached (cache objet)

Définition

Redis et Memcached sont des serveurs de stockage en mémoire vive, utilisés par WordPress comme cache objet persistant. Ils conservent entre deux visites le résultat de requêtes à la base de données et d’autres données calculées, ce qui allège MySQL ou MariaDB et accélère surtout les pages dynamiques, l’administration et les boutiques.

Redis et Memcached (cache objet), Hébergement web

WordPress possède déjà un cache objet : pendant le chargement d’une page, il garde en mémoire les options, articles et métadonnées lus dans la base pour ne pas les redemander. Mais la documentation de WordPress le précise : par défaut, ce cache n’est pas persistant. Tout disparaît à la fin de la requête, et la page suivante recommence les mêmes lectures dans MySQL ou MariaDB. Redis et Memcached rendent ce cache persistant.

Comment fonctionne le cache objet persistant

L’astuce tient en un fichier : object-cache.php, placé dans wp-content. C’est un « drop-in » que WordPress charge automatiquement au démarrage, en remplacement de son cache par défaut. Les extensions de cache objet installent ce fichier, qui redirige les fonctions wp_cache_get() et wp_cache_set() vers un serveur Redis ou Memcached.

Schéma du chemin d’une donnée avec un cache objet persistant : WordPress demande une donnée, par exemple une option ou un article, le fichier object-cache.php transmet la demande au cache, Redis ou Memcached la renvoie depuis la mémoire si elle s’y trouve, sinon WordPress interroge MySQL ou MariaDB puis enregistre le résultat dans le cache pour les requêtes suivantes.
Une donnée trouvée dans Redis ou Memcached évite une requête SQL, pour toutes les pages suivantes.

À ne pas confondre avec la constante WP_CACHE, qui active un autre drop-in, advanced-cache.php, utilisé par les extensions de cache de pages. Le cache de pages évite d’exécuter PHP pour des pages entières ; le cache objet accélère les pages qui doivent rester dynamiques : administration, panier, espace client, recherche. OPcache, lui, agit encore à un autre niveau, sur la compilation du code PHP.

Depuis WordPress 6.1, l’outil Santé du site comporte un test qui indique si un cache objet persistant serait utile, selon le volume d’options, d’articles ou d’utilisateurs du site.

Redis ou Memcached ?

  • Memcached se décrit comme un système de cache d’objets en mémoire, distribué et performant. C’est un stockage clé-valeur simple, qui évince par défaut les éléments les moins récemment utilisés (LRU) ; ses serveurs s’ignorent les uns les autres, ajouter un serveur ajoute de la mémoire.
  • Redis est un magasin de structures de données en mémoire, utilisable comme cache, base de données ou file de messages. Il peut écrire ses données sur disque (instantanés RDB, journal AOF) ou s’en passer, ce que sa documentation présente comme un usage courant pour un cache.

Pour WordPress, les deux font l’affaire. Redis est souvent préféré pour ses fonctions supplémentaires, mais le gain dépend surtout de la proximité du serveur de cache et du site.

Vidéo : « C’est quoi Redis ? » (Kodaps - apprendre à coder)

Pour WordPress

  • Vérifiez la disponibilité : sur un hébergement cloud, un VPS ou une offre qui l’inclut, l’hébergeur ou vous lancez le service ; l’extension PHP correspondante (redis ou memcached) doit être installée.
  • Installez une extension de cache objet, par exemple Redis Object Cache, qui prend en charge PhpRedis, Predis et Relay et fournit des commandes WP-CLI comme wp redis status. Le plugin LiteSpeed Cache gère aussi Redis et Memcached, sur n’importe quel serveur web.
  • Un préfixe par site si plusieurs WordPress partagent le même Redis, sinon leurs données se mélangent.
  • Pas d’exposition sur Internet : Redis et Memcached doivent écouter en local ou sur un réseau privé, avec authentification quand elle est disponible.

Après une modification de réglages, WP Masquerade purge les caches de pages qu’il reconnaît ; la page compatibilité hébergeurs et caches précise lesquels.

Erreurs fréquentes

Activer un cache objet sur un petit site sans en mesurer l’effet, oublier qu’un cache plein ou arrêté peut provoquer des lenteurs, ou installer deux extensions qui se disputent le fichier object-cache.php. En cas de comportement étrange après une migration, videz le cache objet : il peut contenir d’anciennes adresses ou d’anciens réglages.

Pour aller plus loin

  • Page Compatibilité hébergeurs et caches

Sources

  1. WordPress Developer Resources : WP_Object_Cache (lien externe, nouvel onglet)
  2. Make WordPress Core : New cache Site Health checks in WordPress 6.1 (lien externe, nouvel onglet)
  3. Redis Docs : Redis persistence (lien externe, nouvel onglet)
  4. Memcached Documentation (lien externe, nouvel onglet)

Toutes les définitions

La sécurité WordPress, sans le bruit

Un e-mail quand ça compte : nouvelles attaques observées, mises à jour de l’extension et guides pratiques. Pas de spam, désinscription en un clic.

Commencez gratuitement, passez à Pro quand vous êtes prêt

La version gratuite masque déjà WordPress et déplace la page de connexion. Pro ajoute alias, double authentification et surveillance.