Table des matières

Combien de types de mise en cache connaissez-vous ? Lesquels utilisez-vous sur votre site WordPress ?

Si vous utilisez un plugin de mise en cache WordPress comme WP Rocket, vous vous servez sans doute de ses fonctions de mise en cache du navigateur et de la page. Et si vous utilisez aussi ses options avancées de mise en cache, votre site profite également de la mise en cache utilisateur et mobile.

Il existe aussi la mise en cache côté serveur (avec des outils comme Varnish or NGINX), et la mise en cache CDN :  le premier dépend de l’hébergeur que vous utilisez, et le second du service de CDN que vous avez choisi. 

Le dernier type de mise en cache que vous pouvez ajouter est la mise en cache objet : il rend les requêtes à la base de données plus rapide, et donc améliore la vitesse de votre site web.

Dans cet article, nous allons voir en détail les secrets de la mise en cache objet et plonger dans l’un des systèmes de mise en cache d’objet les plus populaires : Memcached.

Il ne faut pas confondre Memcached et memcache, qui est une extension PHP créée pour le service de mise en cache de Memcached, et qui ne fait pas partie de ce que nous allons explorer dans cet article.

La mise en cache d’objet expliquée avec des mots simples 

Avant d’expliquer le fonctionnement de Memcached, nous allons passer en revue ce qu’est exactement la mise en cache d’objet.

Vous savez que la mise en cache d’une page consiste à mettre en cache les ressources statiques (images, HTML, fichiers CSS et JS) et que la mise en cache du navigateur se charge des mêmes ressources au sein du navigateur. La mise en cache d’objet, elle, est dédié à la mise en cache de votre base de données.

Le but de la mise en cache d’objet est de mettre en cache les résultats de requêtes faites à votre base de données. Vous pouvez trouver une explication détaillée de la mise en cache d’objet sur notre blog.

Une base de données efficace est l’un des atouts principaux d’un site web rapide : WordPress est un système de gestion de contenu qui dépend naturellement de sa base de données MySQL.

Chaque fois qu’un utilisateur (ou des crawlers) envoie une requête à votre site, cela génère des requêtes à votre base de données. Si votre site reçoit un grand nombre de requêtes vers la base de données, celles-ci peuvent rapidement s’accumuler, ce qui a pour effet de saturer votre serveur et de ralentir votre site.

La bonne nouvelle, c’est que WordPress avait déjà sorti sa classe de mise en cache objet en 2005. La classe nommée WP_Object_Cache avait alors été intégrée au coeur de WordPress.

Que fait la mise en cache objet de WordPress ?

La mise en cache objet intégrée de WordPress sauvegarde une copie des requêtes complexes et garde ses résultats dans une table (i.e., comme une redirection HTTPS).

Les requêtes les plus fréquemment utilisées dans les pages de votre site sont donc enregistrées dans la base de données : cette copie des requêtes permet de réduire le temps de chargement et de rendre votre site plus performant.

Evidemment, ce procédé n’est pas exclusif aux sites WordPress : tous les sites où un système de mise en cache objet a été mis en place fonctionnent de la même manière.

Par exemple, Drupal, un autre système de gestion de contenu populaire, propose un système intégré de mise en cache objet similaire.

Si la mise en cache objet fonctionne, votre serveur n’aura pas besoin de générer les résultats aux requêtes à chaque fois. Il aura simplement besoin d’utiliser la couche de cache objet créée au préalable.

Pour stocker un cache objet, vous avez plusieurs options à votre disposition. Parmi les moteurs de mise en cache objet les plus populaires, on retrouve Memcached, Redis, et APC.

Qu’est ce que Memcached ?

Memcached est un cache système en mémoire open source élaboré pour faciliter le chargement de bases de données pour des applications web dynamiques comme des boutiques de e-commerce ou des sites où l identification est requise.

Memcached a été développé par Brad Fitzpatrick en 2003. Il est maintenant utilisé par Facebook, Twitter, YouTube, Wikipedia, et d’autres applications web, de plus ou moins grandes tailles.

Ses développeurs le définissent ainsi :

Memcached is an in-memory key-value store for small arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

(source)

Ce système sauvegarde les données associatives clé-valeur pour les chaînes et les objets comme :

  • Appels API
  • Rendu des pages
  • Résultats des appels de base de données

Memcached utilise une architecture client-serveur basée sur quatre éléments : 

  • Un client-serveur, qui conserve la liste des serveurs Memcached disponibles 
  • Un algorithme de hashage, qui choisit un serveur en fonction de la “clé” requise. 
  • Une application serveur, qui sauvegarde les combinaisons valeur-clé dans une table de hash interne
  • Un algorithme Least Recently Used (LRU), qui décide quand utiliser d’ancienne données ou la mémoire 

Comment fonctionne Memcached

Memcached fonctionne comme d’autres systèmes de mise en cache, mais avec la base de donnée au coeur du processus.

Voici son processus en 5 étapes rapides :

  1. Le client-serveur reçoit une requête d’un utilisateur (comme l’accès à l’URL spécifique d’un site web avec une redirection HTTPS);
  2. Le client-serveur vérifie avec le serveur Memcached si l’information requise y est déjà enregistrée;
  3. Si l’information existe, Memcached la renvoie directement au client-serveur;
  4. Si l’information n’est pas déjà sauvegardée dans le cache, Memcached envoie la requête à la base de données;
  5. L’information requise est alors transférée au client-serveur tandis que, au même moment, l’index de Memcached est mis à jour avec ces nouvelles données : le cache est prêt à être utilisé à l’avenir (voir étape 3).
Fonctionnement de Memcached
Fonctionnement de Memcached

Memcached est mis en place via différents serveurs et clients Memcached, ce qui aide a répartir la charge des requêtes.

Le client-serveur utilise l’algorithme de hachage pour choisir à quel serveur Memcached transmettre la requête.

Il faut noter que les serveurs Memcached ne partage pas de données. La base de données envoie des données à un serveur Memcached à la fois. 

Comment utiliser Memcached sur votre site WordPress ? 

La première condition requise pour utiliser Memcached sur votre site WordPress, c’est que votre hébergeur l’ait installé sur son serveur. La seconde condition est que votre web application puisse utiliser Memcached.

Dans la mesure où Memcached repose principalement sur la RAM, il n’a pas besoin de beaucoup de ressources CPU.

De nombreux services d’hébergement sont fournis avec le système Memcached installé sur le cloud de leurs serveurs. Parmi eux on retrouve : A2 Hosting, Cloudways ou encore Siteground.

Si votre serveur propose Memcached, il est très probable que vous puissiez l’utiliser via l’extension PHP Memcached.

Quels sont les avantages de Memcached pour votre site WordPress ?

Le plus gros avantage de Memcached, c’est que toutes les informations sont stockées en RAM : elles n’ont pas besoin d’être téléchargées du disque à chaque fois.

Un autre avantage, c’est qu’il n’y a pas de restriction de données. Vous pouvez utiliser Memcached sur une grande variété de données comme les documents, les images, mais surtout des structures plus complexes. 

De plus, selon l’environnement d’utilisation que vous mettez en place, la panne d’un des serveurs Memcached n’est généralement pas critique. La plupart du temps, d’ailleurs, Memcached est utilisé comme cache en lecture seulement, ou pour garder des informations temporaires. Si vous l’utiliser pour des données persistantes, vous pouvez retourner à une méthode de recherche alternative qui recharge les données dans la RAM d’un serveur différent. 

Est ce que WP Rocket est compatible avec Memcached ? 

WP Rocket est un plugin de mise en cache de page et ne s’occupe donc pas de la mise en cache d’objet. Vous ne trouverez pas d’option spécifique pour Memcached.

Néanmoins, vous pouvez utiliser Memcached avec WP Rocket : il vous suffit simplement d’installer un plugin supplémentaire.

Tout ce que vous devez savoir sur les problèmes de vitesse de votre site web   

Dans cet article vous avez appris : 

  • Ce qu’est la mise en cache d’objet 
  • Ce qu’est Memcached 
  • Comment Memcached fonctionne 
  • Comment utiliser Memcached sur un site WordPress 

Vous pouvez maintenant en apprendre plus sur d’autres facteurs important pour accélérer la vitesse de votre site :           


Derniers articles de Temps de chargement et cache
S’abonner à notre newsletter

Stay in the loop with the latest WordPress and web performance updates.
Straight to your inbox every two weeks.

Obtenez un site Web plus rapide
en quelques clics

Installation en 3 minutes chrono
Obtenir WP Rocket