Nous allons ici optimiser WordPress avec redis, un outil open source permettant de maintenir des bases de données en mémoire (NoSQL) et de mettre des objets en cache. Son principal avantage est sa rapidité.
Optimiser WordPress avec Redis : Installation de Redis
Afin de pouvoir utiliser redis pour la mise en cache d’objets avec WordPress nous allons installer deux paquets : le serveur redis ainsi qu’une extension php7.0 permettant de à des applications php de communiquer avec redis.
sudo apt-get install redis-server php7.0-redis
Optimiser WordPress avec Redis : Configurer la mise en cache
Le serveur redis installé nous allons le configurer pour mettre en place un cache. Commencez par modifier la configuration de redis
sudo nano /etc/redis/redis.conf
Ajoutez ces deux lignes de configuration.
maxmemory 256mb # Mémoire maximum utilisée par redis à modifier selon les capacités de votre serveur maxmemory-policy allkeys-lru # Redis remplacera les clés les moins récentes afin de garder en mémoires les données les plus récemment utilisées
Optimiser WordPress avec Redis : Installation du script de mise en cache
Téléchargez le script
wget https://github.com/ericmann/Redis-Object-Cache/raw/master/object-cache.php
Déplacez le script vers le répertoire ou est installé wordpress
sudo mv object-cache.php /var/www/html/repertoire-wordpress/wp-content/
Optimiser WordPress avec Redis : Configuration de WordPress
Éditez le fichier de configuration de WordPress
sudo nano /var/www/html/repertoire-wordpress/wp-config.php
Si vous souhaitez profiter des fonctions de mise en cache de wordpress en plus de la mise en cache d’objets assurez vous que la configuration suivante soit présente
define('WP_CACHE', true);
La constante WP_CACHE_KEY_SALT
doit obligatoirement être configurée afin d’ajouter un préfixe à toutes les clés du cache utilisée par le plugin. Ainsi si vous hébergez plusieurs instances de WordPress assurez vous que chacune d’entre elles ait un sel unique.
define('WP_CACHE_KEY_SALT', 'mondomain.tld');
Optimiser WordPress avec Redis : Fin de l’installation
Vous pouvez maintenant redémarrer tous les services impactées par cette nouvelle configuration
sudo service redis-server restart sudo service nginx restart ou sudo service apache2 restart sudo service php7.0-fpm
Maintenant vérifiez que tout fonctionne correctement via l’interface cli de redis
sudo redis-cli monitor
En parallèle visitez quelques pages de votre blog. Si tout fonctionne correctement vous devriez voir en temps réel votre serveur redis répondre a des requêtes depuis le cache.
OK 1474557797.503200 "monitor" 1474557797.503288 [0 127.0.0.1:55601] "GET" "wp_:options:alloptions" 1474557797.503438 [0 127.0.0.1:55601] "EXISTS" "wp_:options:notoptions" 1474557797.503491 [0 127.0.0.1:55601] "GET" "wp_:options:notoptions" 1474557797.503544 [0 127.0.0.1:55601] "EXISTS" "wp_:options:alloptions" 1474557797.503595 [0 127.0.0.1:55601] "GET" "wp_:options:alloptions" 1474557797.503837 [0 127.0.0.1:55601] "EXISTS" "wp_user_meta:4874" 1474557797.503893 [0 127.0.0.1:55601] "GET" "wp_user_meta:4874"
Sources
Salut,
je pense qu’il y a des erreurs dans le tutorial digitalocean. Car redis est utilisé pour la mise en cache d’objets, alors que la constante « define(‘WP_CACHE’, true); » est utilisée pour le cache de page.
J’utilise le fork du script d’ericman (disponible directement depuis wordpress et mis à jour régulièrement) : https://wordpress.org/plugins/redis-cache/
Et il est justement question de ça sur le forum de support du plugin :
https://wordpress.org/support/topic/hi-do-i-have-to-definewp_cache-true/
Salut Thomas,
Merci pour ton commentaire.
Effectivement meme si la constante « define(‘WP_CACHE’, true); » n’est pas obligatoire pour que la mise en cache d’objets fonctionne avec Redis, elle est quand même utile.
Je reformule ça et j’ajoute un lien vers le plugin que tu utilises
Pas de quoi, c’est surtout que redis permet d’améliorer les performances de wordpress, même pour des sites utilisant Woocommerce, ou tout autre système avec des sessions utilisateurs.
Et le plugin Redis-object-cache ne requiert même pas d’installer php-redis (même si c’est recommandé) car il est compatible avec Predis.