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.
À 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.
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.
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.
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-serveretphp-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
maxmemoryetmaxmemory-policy. - Ajouter les constantes Redis dans
wp-config.php. - Définir un
WP_CACHE_KEY_SALTunique 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
- Documentation Redis : installer Redis sur Linux
- Documentation Redis : installation APT sur Debian et Ubuntu
- Plugin WordPress : Redis Object Cache
- Documentation WP-CLI : wp cache
- phpredis : extension PHP pour Redis
- Paquet Debian : php-redis
- SkyMinds : mettre en cache WordPress pour accélérer son site
- SkyMinds : auditer les problèmes de performance WordPress avec wp profile
- SkyMinds : nettoyer la base de données WordPress



