Installer Redis pour accélérer WordPress

WordPress interroge beaucoup sa base de données. À chaque chargement, il récupère des options, des métadonnées, des transients, des menus, des informations de taxonomies et parfois des données très répétitives.

Redis permet d’accélérer WordPress en ajoutant un cache objet persistant. Au lieu de recalculer ou relire certaines données à chaque requête, WordPress peut les stocker en mémoire et les réutiliser plus rapidement.

Sur un site éditorial simple, le gain peut être modéré si le cache page fait déjà bien son travail. En revanche, sur un WooCommerce, un site membre, un gros catalogue, un multisite ou une administration lourde, Redis peut faire une vraie différence. Il ne fait pas de magie, mais il évite à MySQL de porter tout le piano sur son dos.

Kinsta: Premium Managed WordPress hosting

À quoi sert Redis avec WordPress ?

Redis est une base de données clé-valeur en mémoire. Elle stocke des données dans la RAM, ce qui permet des lectures et écritures très rapides.

Avec WordPress, Redis sert surtout de cache objet persistant. WordPress possède déjà une API de cache objet, mais ce cache disparaît normalement à la fin de chaque requête PHP. Avec Redis, ce cache peut survivre entre plusieurs requêtes.

Concrètement, WordPress peut stocker dans Redis :

  • des options WordPress ;
  • des résultats de requêtes ;
  • des métadonnées d’articles, d’utilisateurs ou de termes ;
  • des transients ;
  • des objets WooCommerce ;
  • certaines données de taxonomies ;
  • des données répétitives utilisées par les plugins.

Redis ne remplace donc pas MySQL ou MariaDB. Il évite seulement de leur demander les mêmes informations trop souvent.

Redis ne remplace pas le cache page

Avant d’installer Redis partout, il faut bien distinguer les caches.

  • Le cache page stocke le HTML complet d’une page.
  • Le cache navigateur garde les fichiers statiques côté visiteur.
  • Le cache CDN rapproche les ressources de l’utilisateur.
  • OPcache garde le code PHP compilé.
  • Redis stocke des objets WordPress en mémoire.

Sur une page publique anonyme, un bon cache page peut éviter de charger WordPress entièrement. Dans ce cas, Redis intervient peu. Sur une page dynamique, un back-office, une boutique WooCommerce ou une page non cachable, Redis devient beaucoup plus intéressant.

Pour une vue d’ensemble, lisez aussi mettre en cache WordPress pour accélérer son site.

Kinsta: Premium Managed WordPress hosting

Prérequis serveur

Ce guide vise un serveur Debian ou dérivé, avec WordPress déjà installé.

  • Debian avec accès root ou sudo.
  • PHP-FPM ou Apache avec PHP.
  • WP-CLI disponible.
  • WordPress fonctionnel.
  • Accès SSH au serveur.
  • Un minimum de RAM disponible.

Redis stocke ses données en mémoire. Sur un petit VPS, ne lui donnez pas toute la RAM. WordPress vous remerciera. MySQL aussi. Le kernel, lui, dira simplement moins de gros mots dans les logs.

Installer Redis et l’extension PHP Redis sur Debian

Commencez par mettre à jour l’index des paquets :

apt update

Installez ensuite Redis et l’extension PHP Redis :

apt install redis-server php-redis

Le paquet php-redis fournit l’extension PHP utilisée par WordPress et les plugins de cache objet pour communiquer avec Redis.

Selon votre stack PHP, vous pouvez aussi installer une version ciblée :

apt install php8.3-redisLangage du code : CSS (css)

Adaptez évidemment la version à celle utilisée par votre site : PHP 8.2, 8.3, 8.4 ou autre version disponible sur votre dépôt.

Distingo, le livret à 2%

Vérifier que Redis fonctionne

Vérifiez l’état du service Redis :

systemctl status redis-server

Activez Redis au démarrage si nécessaire :

systemctl enable --now redis-server

Testez ensuite la connexion avec redis-cli :

redis-cli ping

Redis doit répondre :

PONG

Si vous obtenez cette réponse, le serveur Redis tourne correctement.

Vérifier que PHP charge l’extension Redis

Vérifiez d’abord côté ligne de commande :

php -m | grep -i redis

Vous devez obtenir :

redis

Ensuite, vérifiez avec WP-CLI depuis le dossier WordPress :

wp eval 'var_dump( extension_loaded( "redis" ) );'Langage du code : JavaScript (javascript)

La réponse attendue est :

bool(true)Langage du code : JavaScript (javascript)

Attention : le PHP CLI et le PHP-FPM du site peuvent utiliser des versions ou configurations différentes. Si WP-CLI voit Redis, mais pas le site web, redémarrez PHP-FPM et vérifiez la version PHP réellement utilisée par le vhost.

systemctl reload php8.3-fpmLangage du code : CSS (css)

Adaptez le nom du service à votre version PHP.

Kinsta: Premium Managed WordPress hosting

Configurer Redis pour WordPress

Le fichier principal de configuration se trouve généralement ici :

/etc/redis/redis.conf

Ouvrez-le :

nano /etc/redis/redis.conf

Sur un serveur WordPress classique, Redis doit rester local. Vérifiez cette ligne :

bind 127.0.0.1 ::1Langage du code : CSS (css)

Vérifiez aussi que Redis n’est pas exposé publiquement. Sur une installation locale au serveur, gardez le mode protégé :

protected-mode yesLangage du code : PHP (php)

Définissez ensuite une limite mémoire raisonnable. Exemple pour un serveur avec plusieurs sites WordPress :

maxmemory 256mb
maxmemory-policy allkeys-lru

La politique allkeys-lru autorise Redis à supprimer les clés les moins récemment utilisées quand la mémoire maximale est atteinte. Pour un cache, c’est souvent le comportement attendu.

Redémarrez Redis après modification :

systemctl restart redis-server

Puis vérifiez l’état :

systemctl status redis-server

Faut-il définir un mot de passe Redis ?

Si Redis écoute seulement sur 127.0.0.1 et reste inaccessible depuis l’extérieur, le mot de passe est moins critique. En revanche, si plusieurs utilisateurs système ou plusieurs applications partagent le serveur, une authentification reste utile.

Dans /etc/redis/redis.conf, vous pouvez définir :

requirepass VOTRE_MOT_DE_PASSE_LONG_ET_UNIQUE

Redémarrez ensuite Redis :

systemctl restart redis-server

Le test devient alors :

redis-cli -a 'VOTRE_MOT_DE_PASSE_LONG_ET_UNIQUE' pingLangage du code : JavaScript (javascript)

Vous devez obtenir :

PONG

Sur un serveur moderne, vous pouvez aussi gérer des utilisateurs Redis avec ACL. Pour un serveur WordPress simple et local, requirepass reste souvent suffisant.

Connexion TCP ou socket Unix ?

Redis peut être utilisé via TCP local, par exemple 127.0.0.1:6379, ou via socket Unix. Le TCP local est plus simple à configurer. Le socket Unix évite la couche TCP et peut être légèrement plus rapide sur un serveur local.

Pour commencer, utilisez TCP local :

define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );Langage du code : JavaScript (javascript)

Si vous voulez utiliser un socket Unix, configurez Redis :

unixsocket /run/redis/redis-server.sock
unixsocketperm 770

Ensuite, ajoutez l’utilisateur PHP-FPM au groupe Redis si nécessaire :

usermod -aG redis www-data

Puis redémarrez Redis et PHP-FPM :

systemctl restart redis-server
systemctl restart php8.3-fpmLangage du code : CSS (css)

La configuration WordPress peut alors utiliser le socket :

define( 'WP_REDIS_PATH', '/run/redis/redis-server.sock' );Langage du code : JavaScript (javascript)

Commencez simple avec TCP. Passez au socket seulement si vous savez pourquoi vous le faites. Le meilleur réglage, c’est celui que vous saurez dépanner à 23 h 41.

Configurer WordPress pour Redis

Ajoutez la configuration Redis dans wp-config.php, avant la ligne qui indique que WordPress arrête l’édition :

/* That's all, stop editing! Happy publishing. */Langage du code : JSON / JSON avec commentaires (json)

Pour une connexion TCP locale sans mot de passe :

define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_CACHE_KEY_SALT', 'example.com:' );Langage du code : JavaScript (javascript)

Avec mot de passe :

define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_PASSWORD', 'VOTRE_MOT_DE_PASSE_LONG_ET_UNIQUE' );
define( 'WP_CACHE_KEY_SALT', 'example.com:' );Langage du code : JavaScript (javascript)

Remplacez example.com: par un préfixe propre à votre site.

Cette constante est importante si plusieurs sites WordPress utilisent la même instance Redis. Elle évite que les clés de cache de plusieurs sites se mélangent. Le genre de mélange où l’on gagne rarement autre chose qu’un après-midi de debug.

Installer Redis Object Cache dans WordPress

Le plugin le plus utilisé pour connecter WordPress à Redis est Redis Object Cache.

Installez-le avec WP-CLI :

wp plugin install redis-cache --activate

Activez ensuite le cache objet :

wp redis enable

Cette commande installe le drop-in object-cache.php dans wp-content. C’est ce fichier qui permet à WordPress d’utiliser Redis pour son cache objet.

Vérifiez le statut :

wp redis status

Vous devez obtenir un statut connecté ou équivalent. Dans l’administration WordPress, vous pouvez aussi vérifier dans Réglages > Redis.

Vérifier que WordPress utilise bien Redis

Commencez par contrôler la présence du drop-in :

wp eval 'var_dump( file_exists( WP_CONTENT_DIR . "/object-cache.php" ) );'Langage du code : JavaScript (javascript)

Réponse attendue :

bool(true)Langage du code : JavaScript (javascript)

Vérifiez ensuite le statut Redis :

wp redis status

Vous pouvez aussi regarder l’activité côté Redis :

redis-cli monitor

Si Redis utilise un mot de passe :

redis-cli -a 'VOTRE_MOT_DE_PASSE_LONG_ET_UNIQUE' monitorLangage du code : JavaScript (javascript)

Rechargez ensuite une page WordPress ou ouvrez l’administration. Vous devriez voir passer des commandes GET, SET, DEL ou similaires.

N’utilisez pas MONITOR longtemps en production. Cette commande affiche toutes les opérations en direct et peut devenir lourde sur un site actif. Pour un contrôle rapide, elle est pratique. Pour du monitoring sérieux, préférez des métriques Redis ou l’observabilité serveur.

Purger le cache Redis

Pour vider le cache objet depuis WordPress :

wp cache flush

Avec Redis Object Cache, vous pouvez aussi utiliser :

wp redis flush

Évitez de vider toute l’instance Redis avec FLUSHALL si elle est partagée entre plusieurs sites ou applications. Vous pourriez supprimer les caches d’autres projets.

Pour inspecter les informations Redis :

redis-cli info memory
redis-cli info stats

Avec mot de passe :

redis-cli -a 'VOTRE_MOT_DE_PASSE_LONG_ET_UNIQUE' info memory
redis-cli -a 'VOTRE_MOT_DE_PASSE_LONG_ET_UNIQUE' info statsLangage du code : JavaScript (javascript)

Configuration multisite ou plusieurs WordPress sur le même serveur

Si plusieurs sites WordPress utilisent le même Redis, définissez un WP_CACHE_KEY_SALT unique pour chaque site :

define( 'WP_CACHE_KEY_SALT', 'site-a.example.com:' );Langage du code : JavaScript (javascript)

Puis, pour un autre site :

define( 'WP_CACHE_KEY_SALT', 'site-b.example.com:' );Langage du code : JavaScript (javascript)

Vous pouvez aussi utiliser des bases Redis différentes, si votre plugin le supporte :

define( 'WP_REDIS_DATABASE', 1 );Langage du code : JavaScript (javascript)

Le préfixe reste toutefois plus explicite et évite de dépendre uniquement d’un numéro de base. Sur un parc de sites, documentez cette convention. Votre futur vous dira merci.

Redis et WooCommerce

Redis peut être très utile avec WooCommerce, surtout sur les boutiques avec beaucoup de produits, de métadonnées, de catégories, d’attributs ou d’utilisateurs connectés.

Il peut aider sur :

  • les requêtes répétitives ;
  • les options WooCommerce ;
  • les métadonnées produits ;
  • les taxonomies produits ;
  • les gros back-offices ;
  • les imports ou traitements administratifs.

En revanche, Redis ne doit pas servir d’excuse pour cacher n’importe quoi. Les paniers, comptes clients, prix dynamiques, coupons, sessions et checkouts doivent rester cohérents. Testez toujours les parcours de commande après activation.

Pour WooCommerce, Redis complète le cache. Il ne remplace pas une bonne configuration des exclusions de cache page.

Mesurer le gain réel

N’installez pas Redis uniquement parce que “ça accélère WordPress”. Mesurez avant et après.

Avant activation, vous pouvez inspecter les performances avec WP-CLI :

wp profile stage
wp profile plugin --orderby=time
wp profile hook --orderby=time

Après activation, relancez les mêmes mesures. Comparez notamment :

  • le temps de chargement WordPress ;
  • le nombre de requêtes SQL ;
  • le temps passé en base ;
  • la fluidité du back-office ;
  • le comportement des pages WooCommerce ;
  • la mémoire utilisée par Redis.

J’ai détaillé cette approche dans auditer les problèmes de performance WordPress avec wp profile.

Erreurs fréquentes avec Redis et WordPress

Redis Object Cache affiche “Not connected”

Vérifiez d’abord que Redis répond :

redis-cli ping

Ensuite, vérifiez les constantes dans wp-config.php :

wp config get WP_REDIS_HOST
wp config get WP_REDIS_PORT
wp config get WP_REDIS_PASSWORDLangage du code : JavaScript (javascript)

Si vous utilisez un socket, vérifiez les permissions du fichier socket et l’utilisateur PHP-FPM.

L’extension PHP Redis n’est pas chargée

Vérifiez le module PHP :

php -m | grep -i redis

Si rien ne s’affiche, installez ou activez l’extension :

apt install php-redis
phpenmod redis
systemctl reload php8.3-fpmLangage du code : CSS (css)

Adaptez le service PHP-FPM à votre version.

Redis consomme trop de mémoire

Vérifiez la mémoire :

redis-cli info memory

Assurez-vous que maxmemory est défini :

grep -E '^maxmemory|^maxmemory-policy' /etc/redis/redis.confLangage du code : JavaScript (javascript)

Si Redis n’a pas de limite mémoire, il peut grossir plus que prévu. Pour un cache, définissez toujours une limite adaptée au serveur.

Le site affiche des données anciennes

Videz le cache objet :

wp cache flush

Si le problème persiste, vérifiez aussi le cache page, le CDN, le cache navigateur et les transients. Redis n’est parfois qu’un étage dans l’immeuble du cache.

Désactiver Redis proprement

Si Redis pose problème, désactivez d’abord le cache objet côté WordPress :

wp redis disable

Vérifiez que le drop-in a disparu :

ls -l wp-content/object-cache.php

Si le fichier existe encore et appartient au plugin Redis Object Cache, vous pouvez le retirer après vérification :

rm wp-content/object-cache.php

Puis videz les caches applicatifs restants :

wp cache flush

Ne désinstallez pas Redis au hasard si d’autres sites ou applications l’utilisent sur le serveur.

Besoin d’aide pour accélérer WordPress avec Redis ?

Besoin d’un développeur WordPress pour optimiser votre site ?

Installer Redis peut accélérer WordPress, mais encore faut-il savoir si le cache objet est vraiment le bon levier pour votre site. Une lenteur peut venir de MySQL, du thème, d’un plugin, du cache page, de WooCommerce, de PHP-FPM, du serveur ou d’un mauvais réglage CDN.

J’interviens comme développeur WordPress et WooCommerce pour auditer les performances, configurer Redis proprement, optimiser la base de données, analyser les requêtes lentes et fiabiliser le cache sans casser les parcours importants.

  • Installation et configuration Redis sur serveur Debian ou Ubuntu.
  • Configuration Redis Object Cache, WP-CLI et wp-config.php.
  • Audit des requêtes SQL, options autoloadées et plugins lents.
  • Optimisation WooCommerce, cache page, cache objet et CDN.
  • Intervention propre, testée et documentée.

Vous voulez accélérer WordPress sans empiler des caches au hasard ? Contactez-moi. Je vous aiderai à identifier le vrai goulot d’étranglement et à corriger ce qui ralentit réellement votre site.

Checklist Redis pour WordPress

  • Installer redis-server et php-redis.
  • Vérifier Redis avec redis-cli ping.
  • Vérifier l’extension PHP avec php -m | grep -i redis.
  • Limiter Redis à une écoute locale.
  • Définir maxmemory et maxmemory-policy.
  • Ajouter les constantes Redis dans wp-config.php.
  • Définir un WP_CACHE_KEY_SALT unique par site.
  • Installer et activer Redis Object Cache.
  • Lancer wp redis enable.
  • Vérifier avec wp redis status.
  • Tester le site connecté et déconnecté.
  • Contrôler WooCommerce si le site vend en ligne.
  • Mesurer les performances avant et après.

FAQ : Redis et WordPress sur Debian/Ubuntu

Redis accélère-t-il toujours WordPress ?

Non. Redis aide surtout les sites dynamiques, les back-offices lourds, WooCommerce, les sites membres et les sites avec beaucoup de requêtes répétitives. Sur une page publique déjà servie par cache page, le gain peut être faible.

Redis remplace-t-il un plugin de cache WordPress ?

Non. Redis fournit un cache objet persistant. Un plugin de cache page stocke le HTML complet. Les deux répondent à des besoins différents et peuvent se compléter.

Faut-il installer php-redis pour WordPress ?

Oui, dans la plupart des configurations. L’extension php-redis permet à PHP, donc à WordPress, de communiquer efficacement avec Redis.

Quelle mémoire donner à Redis ?

Pour un petit serveur WordPress, commencez prudemment avec 128mb ou 256mb. Sur un gros WooCommerce, augmentez selon les mesures. Définissez toujours une limite avec maxmemory.

Puis-je utiliser une seule instance Redis pour plusieurs sites ?

Oui, mais donnez un WP_CACHE_KEY_SALT unique à chaque site. Sinon, les clés de cache peuvent se mélanger entre plusieurs WordPress.

Comment savoir si WordPress utilise Redis ?

Installez Redis Object Cache, activez-le avec wp redis enable, puis vérifiez avec wp redis status. Vous pouvez aussi contrôler la présence de wp-content/object-cache.php.

Redis peut-il casser WooCommerce ?

Redis est généralement compatible avec WooCommerce, mais il faut tester les paniers, comptes, prix dynamiques, coupons et commandes. Le cache objet ne doit pas masquer une mauvaise configuration du cache page.

Sources

Demandez à l'IA son opinion
Gravatar for Matt Biscay

Je suis Matt Biscay, développeur WordPress & WooCommerce certifié chez Codeable, administrateur système et enseignant.

J’aide les entreprises à créer, optimiser et fiabiliser leurs sites WordPress avec une approche technique propre : performance, sécurité, maintenance, développement sur mesure et résolution de problèmes complexes.

Sur Skyminds, je partage des tutoriels WordPress, WooCommerce, Linux et administration système, avec des solutions testées sur des cas réels et pensées pour durer.

Découvrez mes services WordPress et WooCommerce.

Laisser un commentaire