Aller au contenu principal
Tutoriels

Redis pour WordPress sous LiteSpeed : installation

Fenêtre de terminal sombre suspendue au-dessus d'un cylindre de base de données, un éclair bleu électrique la traverse et alimente une plateforme de flux de données lumineuse, gouttes de particules bleues descendant jusqu'à la base

Un WordPress qui traîne malgré un cache de page actif souffre presque toujours du même mal : trop d'allers-retours vers la base de données. Deux caches se confondent régulièrement dans ce diagnostic. Le cache de page — LSCache sous LiteSpeed — enregistre le HTML final d'une page publique et le ressert sans redémarrer WordPress ni PHP. L'object cache — Redis, sujet de ce tutoriel — garde en mémoire les résultats de requêtes SQL et les options WordPress ; il agit après que PHP a démarré, sur les pages que LSCache ne peut pas mettre en cache : back-office, panier, compte client. Ce guide installe Redis pour WordPress sous LiteSpeed, du contrôle de disponibilité côté serveur jusqu'à la mesure du gain sur le TTFB et le nombre de requêtes base de données. Prérequis : Redis actif côté hébergeur, accès à un plugin d'administration et au fichier wp-config.php.

L'essentiel en un coup d'œil

Question Réponse courte
Cache de page ou cache objet ? LSCache sert le HTML ; Redis décharge les requêtes SQL et wp_options
Quand Redis apporte un gain ? Sites dynamiques, WooCommerce, visiteurs connectés, wp_options volumineux
Quand Redis est inutile ? Petit site vitrine déjà bien servi par LSCache, trafic quasi entièrement anonyme
Où l'activer chez Tomco ? Enhance Panel → site → Redis, sans installation serveur côté client
Constantes à ajouter WP_REDIS_HOST, WP_REDIS_PORT, WP_REDIS_DATABASE, WP_CACHE dans wp-config.php

Redis change la donne sur les sites dynamiques : WooCommerce (sessions, transients de stock), espaces membres, intranets, ou tout WordPress dont la table wp_options dépasse plusieurs mégaoctets à cause de plugins mal rangés. Sur un site vitrine statique de quelques pages, déjà servi à l'essentiel depuis LSCache, l'installation ajoute une couche opérationnelle pour un gain qui ne se mesure pas : le cache de page couvre déjà le trafic anonyme, largement majoritaire sur ce profil de site.

Vérifier que Redis est disponible pour WordPress

Redis doit tourner côté serveur avant toute installation de plugin ; ce tutoriel ne couvre pas la compilation ou l'installation du service lui-même. Sur les offres Tomco, Redis est disponible nativement sur chaque offre mutualisée et VPS : le service tourne déjà sur le serveur, prêt à être activé pour un site précis, sans compilation ni serveur tiers à maintenir côté client.

Activation côté Tomco. Depuis Enhance Panel : Hébergement → site concerné → onglet Redis → Activer. Le panneau attribue automatiquement un index de base dédié et affiche l'hôte et le port à reporter dans wp-config.php à l'étape suivante.

Vérifier l'extension PHP. Le pont entre WordPress et Redis passe par l'extension PECL redis, pas par un simple appel réseau :

php -m | grep -i redis
# redis

Absence de résultat = l'extension n'est pas chargée pour la version PHP active du site. Chez Tomco, elle est maintenue à jour à chaque montée de version PHP, y compris sur PHP 8.5.

Tester la connexion au service. Avec un accès SSH :

redis-cli -h 127.0.0.1 -p 6379 ping
# PONG

PONG confirme que le service répond. Sans accès SSH, le statut du plugin (étape « Activer et vérifier ») sert de vérification équivalente.

Installer le plugin object cache

Deux voies mènent au même résultat, avec un arbitrage simple.

Option Quand la choisir
Redis Object Cache (plugin dédié) Hébergement sans LiteSpeed Cache installé, ou réglages Redis avancés (clustering, réplication)
LiteSpeed Cache — onglet Object Cache LSCache déjà installé pour le cache de page : un seul plugin gère les deux caches

Sur une infrastructure LiteSpeed où LSCache gère déjà le cache de page, activer son onglet Cache → Object évite d'installer un second plugin et centralise les réglages. Le plugin autonome Redis Object Cache reste pertinent en dehors de LiteSpeed, ou pour des réglages Redis fins non exposés par LSCache.

Installation du plugin dédié via WP-CLI, si retenu :

wp plugin install redis-cache --activate

Le plugin s'appuie sur l'API objet cache native de WordPress (WP_Object_Cache), documentée par developer.wordpress.org : chaque fonction wp_cache_get() / wp_cache_set() du cœur et des plugins passe par ce point d'entrée, que le backend soit Redis, Memcached, ou la mémoire de la requête en cours sans persistance.

Configurer wp-config.php

Le plugin installé, la connexion à Redis se déclare par constantes dans wp-config.php, au-dessus de la ligne /* That's all, stop editing! */ :

define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_DATABASE', 3);
define('WP_REDIS_TIMEOUT', 1);
define('WP_CACHE', true);

WP_REDIS_DATABASE isole les clés d'un site sur une base Redis dédiée (index numérique, 0 à 15 par défaut) : indispensable dès qu'un serveur mutualisé héberge plusieurs installations WordPress sur la même instance Redis, pour éviter qu'une purge sur un site n'efface le cache d'un autre. Sur Enhance Panel, cet index est attribué automatiquement à l'activation et déjà reporté dans les réglages affichés.

WP_CACHE à true est requis pour que WordPress charge le drop-in object-cache.php — sans cette ligne, le plugin reste installé mais inactif.

Activer et vérifier

Le drop-in se copie dans wp-content/ en une commande WP-CLI :

wp redis enable
# Object cache enabled.

Cette commande place object-cache.php à la racine de wp-content/, le fichier que WordPress charge avant tout plugin pour router les appels wp_cache_*() vers Redis. Vérification du statut :

wp redis status
# Status: Connected
# Client: PhpRedis
# Drop-in: Valid

Drop-in: Valid confirme que le fichier object-cache.php présent correspond à la version du plugin actif — un Drop-in: Invalid après une mise à jour de plugin se corrige en relançant wp redis enable. Sans WP-CLI, la page de réglages du plugin (Redis Object Cache, ou onglet LiteSpeed Cache → Object) affiche le même statut de connexion.

Vue en angle de deux écrans sombres : à gauche un tableau de bord avec un indicateur de statut bleu et une courbe ascendante, un anneau de progression et des listes à puces ; à droite une fenêtre de terminal avec des lignes de code floutées et un curseur magenta
Statut attendu après activation : indicateur connecté et anneau de progression pleins, vérifiables aussi bien depuis l'écran du plugin que depuis un terminal SSH.

Observer le trafic réel entre WordPress et Redis, requête par requête :

redis-cli monitor

Chaque rafraîchissement d'une page WordPress fait apparaître des commandes GET et SET dans le flux — signe que le cache objet est effectivement sollicité, pas seulement déclaré actif.

Régler et sécuriser

Trois réglages évitent les mauvaises surprises en production.

Base dédiée par site. Sur un serveur mutualisé, ne jamais partager l'index WP_REDIS_DATABASE entre plusieurs installations WordPress : une purge (wp cache flush) sur un site viderait le cache de tous les autres sites partageant le même index. Chez Tomco, un index dédié est attribué par site dès l'activation dans Enhance Panel.

Politique d'éviction. Redis doit pouvoir libérer de la mémoire sous pression sans faire planter WordPress. La politique allkeys-lru (Least Recently Used) évince les clés les moins récemment utilisées en premier, adaptée à un usage cache pur :

maxmemory-policy allkeys-lru

Réglage géré côté serveur sur l'infrastructure Tomco, sans intervention côté client.

Mot de passe. Si le service Redis est exposé au-delà de localhost — un VPS avec Redis distant, par exemple — un mot de passe s'ajoute côté serveur (requirepass) et côté WordPress via une constante supplémentaire :

define('WP_REDIS_PASSWORD', 'valeur-generee-par-l-hebergeur');

Sur un Redis lié à 127.0.0.1 uniquement, comme c'est le cas par défaut chez Tomco, le port n'est jamais exposé à l'extérieur du serveur : le mot de passe devient une défense en profondeur plutôt qu'une nécessité stricte.

Exclusions. Les groupes de cache volatils du cœur WordPress restent non persistants par défaut (recalculés à chaque requête plutôt que stockés dans Redis) : aucune exclusion manuelle n'est nécessaire dans une installation standard.

Mesurer le gain

La preuve se lit à deux endroits : le temps de réponse serveur et le nombre de requêtes base de données par page.

TTFB avant/après, sur une page non cachable par LSCache (tableau de bord wp-admin, compte client, panier) :

curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\n" https://exemple.fr/wp-admin/

Sur un WordPress à base de données chargée — dizaines de milliers de lignes wp_options et wp_postmeta, plusieurs dizaines de plugins actifs — l'infrastructure Tomco mesure un TTFB de l'ordre de 500-600 ms sur ces pages sans cache objet, contre 100-150 ms une fois Redis activé, un ordre de grandeur cohérent avec la réduction de plus de 70 % des requêtes base observée sur les pages connectées WooCommerce.

Requêtes base de données par page, avec le plugin Query Monitor : l'onglet Database affiche le nombre total de requêtes SQL et leur temps cumulé. Sur le même profil de site, ce compteur passe d'une centaine de requêtes à moins de trente une fois le cache objet actif — les lectures répétées de wp_options, taxonomies et métadonnées de menu ne retournent plus à la base.

Gros plan sur un cadran de jauge lumineux, aiguille bleu électrique pointant vers une valeur basse, un second cadran flouté à l'arrière-plan également en position basse
Ce que Query Monitor et le TTFB donnent à voir : l'aiguille tombe en position basse une fois le cache objet actif, sur les pages jusque-là non cachables.

Effet cumulé avec LSCache. Les deux caches ne se recouvrent pas : LSCache sert le HTML complet en 20-50 ms pour un visiteur anonyme sur une page déjà en cache, sans jamais démarrer PHP. Redis prend le relais exactement là où LSCache ne peut rien — pages connectées, panier, back-office — en déchargeant la base plutôt que le rendu HTML.

Deux plateformes de verre superposées : la plateforme supérieure bleu électrique renvoie un rayon lumineux en aller-retour instantané, la plateforme inférieure magenta reste reliée en permanence à un petit cylindre de base de données en dessous par un faisceau vertical
Deux couches distinctes : la couche supérieure absorbe la requête et répond directement, sans jamais redescendre ; la couche inférieure reste connectée en continu à la base de données pour tout ce que la première ne peut pas traiter.

Sur l'infrastructure Tomco, les deux couches se cumulent sans configuration croisée : un hébergement WooCommerce combine par exemple l'ESI LiteSpeed pour les fiches produit publiques et Redis pour les sessions et paniers, chacun gagnant sur son propre segment de trafic. Le réglage détaillé du cache de page reste couvert par le guide configurer LiteSpeed Cache pour WordPress, préalable recommandé avant Redis — la configuration côté serveur, elle, est déjà en place sur tout hébergement web Tomco.

Hébergez votre site sur une infrastructure française sécurisée.

Démarrer avec Tomco

Questions fréquentes

Redis remplace-t-il LiteSpeed Cache ?

Non, les deux caches sont complémentaires et ne couvrent pas le même trafic. LSCache met en cache le HTML complet d'une page publique et sert un visiteur anonyme sans démarrer PHP ni WordPress — le gain le plus large en volume, puisque la majorité du trafic d'un site est anonyme. Redis intervient après le démarrage de PHP, sur les pages que LSCache ne peut jamais mettre en cache : tableau de bord, panier, compte client, tout contenu personnalisé par visiteur. Désactiver LSCache pour ne garder que Redis ferait perdre le gain le plus large ; les deux activés ensemble se cumulent sans conflit.

Quelle différence entre Redis et Memcached pour WordPress ?

Les deux sont des caches objet en mémoire compatibles avec l'API WordPress WP_Object_Cache, mais Redis persiste optionnellement les données sur disque et gère des structures plus riches (listes, ensembles, expiration par clé fine), ce qui explique son adoption plus large sur WordPress et WooCommerce. Memcached reste plus simple et strictement en mémoire, sans persistance. Pour un usage cache objet WordPress standard, les deux atteignent un résultat proche ; Redis l'emporte dès que des fonctionnalités additionnelles (files d'attente, pub/sub) entrent en jeu ailleurs sur l'infrastructure.

Faut-il un mot de passe Redis en production ?

Cela dépend de l'exposition réseau du service. Un Redis lié uniquement à 127.0.0.1, comme c'est le cas par défaut chez Tomco, n'est jamais joignable depuis l'extérieur du serveur : le port ne traverse pas le réseau public. Un mot de passe (requirepass côté serveur, WP_REDIS_PASSWORD côté wp-config.php) devient nécessaire dès que le service écoute sur une interface réseau accessible depuis d'autres machines, par exemple un Redis mutualisé entre plusieurs serveurs applicatifs sur un VPS ou un cluster.

Combien de mémoire allouer à Redis pour un WordPress ?

Un site WordPress standard, hors gros catalogue WooCommerce, occupe rarement plus de quelques dizaines de mégaoctets de cache objet en régime stationnaire. 128 à 256 Mo de maxmemory couvrent confortablement la majorité des installations avec une politique allkeys-lru, qui évince les clés les moins utilisées sans erreur applicative en cas de saturation. Une boutique à plusieurs milliers de références avec beaucoup de sessions simultanées peut justifier 512 Mo ou plus ; le dimensionnement se surveille avec redis-cli info memory plutôt que de se deviner à l'avance.

Redis apporte-t-il un gain sur un petit site vitrine ?

Rarement de façon mesurable. Un site vitrine de quelques pages, à trafic majoritairement anonyme et déjà servi par LSCache, voit l'essentiel de ses visiteurs recevoir une page HTML mise en cache sans jamais solliciter PHP ni la base de données — Redis n'a alors presque rien à décharger. Le gain devient net sur les sites dynamiques : WooCommerce, espaces membres, intranets, ou tout WordPress dont la table wp_options a grossi avec les plugins au point de ralentir chaque démarrage de PHP, connecté ou non.