Redis est un stockage de données clé-valeur sans schéma, en mémoire, destiné aux applications en temps réel. Les développeurs peuvent l’utiliser comme base de données NoSQL, comme couche de données secondaire ou comme couche de cache pour les processus informatiques intensifs.

Redis offre un stockage persistant qui peut mettre en cache les états de session des sites web et d’autres données. Les applications qui utilisent Redis comme couche de cache effectuent généralement une requête complexe dans la base de données ou un appel à l’API, puis mettent les résultats en cache. Redis peut stocker et récupérer des objets rapidement et efficacement. Redis est donc un excellent compagnon pour WordPress, qui utilise un serveur de base de données relationnelle plus traditionnel comme principal stockage de contenu.

L’interface de ligne de commande Redis (CLI) peut être utilisée pour communiquer avec le serveur Redis de votre site WordPress. En utilisant l’interface de ligne de commande Redis (invoquée sur la ligne de commande en tant que redis-cli), vous pouvez demander et recevoir des réponses du serveur Redis de manière programmatique, surveiller les commandes exécutées dans une instance Redis, vérifier la latence d’une instance et observer l’état du serveur en temps réel.

Ce tutoriel vous montre comment intégrer Redis à votre site WordPress et utiliser l’interface de programmation Redis pour effectuer des opérations de création, de lecture, de mise à jour et de suppression (CRUD) à partir de votre terminal.

Connecter Redis à WordPress en utilisant DevKinsta

Pour connecter un site WordPress à une base de données Redis, nous utilisons DevKinsta, une boîte à outils gratuite permettant de créer, développer et déployer rapidement des sites WordPress à partir de votre environnement local.

DevKinsta démarre localement un site WordPress Dockerisé avec les dernières versions de ses dépendances, y compris un serveur web Nginx, PHP et une base de données MariaDB compatible avec MySQL. Il offre également un support CLI pour WordPress.

DevKinsta est disponible pour Windows, Linux et macOS. Vous trouverez plus d’informations concernant l’installation lors du téléchargement de DevKinsta.

Une fois l’installation terminée, créez et installez un nouveau site WordPress localement sur votre appareil en utilisant la pile d’hébergement par défaut.

DevKinsta offre trois options pour créer localement des sites WordPress : un tout nouveau site avec des réglages par défaut, un nouveau site avec des réglages personnalisés, et le clonage d’un site existant hébergé sur Kinsta vers votre environnement de développement local.

Ce tutoriel utilise la première option avec les réglages par défaut et les dernières versions de Nginx, PHP, MariaDB et WordPress.

Une fois que vous avez suivi ces étapes, vous pouvez consulter le tableau de bord de votre nouveau site dans DevKinsta :

Le tableau de bord DevKinsta après avoir créé un nouveau site WordPress.
Le tableau de bord DevKinsta après avoir créé un nouveau site WordPress.

Prenez note du chemin d’accès au site. Il s’agit du répertoire contenant les fichiers et les dossiers du site local. Le lien vers le tableau de bord WP Admin apparaît dans le coin supérieur droit. Enfin, notez l’hôte du site, qui est l’URL pointant vers votre nouveau site de développement.

Vous pouvez ouvrir Docker Desktop pour lister tous les conteneurs fonctionnant en tant que dépendances dans votre projet DevKinsta. Pour ce faire, cliquez sur Conteneurs en haut de la colonne latérale de gauche :

Liste des conteneurs DevKinsta dans Docker Desktop.
Liste des conteneurs DevKinsta dans Docker Desktop.

Maintenant que votre site WordPress et les dépendances des conteneurs sont opérationnels, vous êtes prêt à connecter une base de données Redis à votre site :

  1. Cliquez sur le bouton WP Admin dans DevKinsta pour naviguer vers votre tableau de bord d’administration WordPress.
  2. Cliquez sur l’onglet Extensions sur le côté gauche.
  3. Cliquez sur Ajouter, et recherchez « Redis Object Cache »
Recherche de l'extension Redis Object Cache dans WordPress.
Recherche de l’extension Redis Object Cache dans WordPress.

Cliquez sur Installer maintenant à côté de l’extension. Ensuite, confirmez qu’elle est active en cliquant sur l’onglet Extensions installées.

Extensions WordPress installées, y compris Redis Object Cache.
Extensions WordPress installées, y compris Redis Object Cache.

Lorsqu’elle est activée pour la première fois, l’extension Redis Object Cache signale qu’elle ne peut pas se connecter à une base de données Redis. Nous résolvons ce problème en créant un conteneur avec une instance Redis dans Docker.

Ouvrons un terminal et créons un conteneur réseau appelé redisnet dans lequel vous exécuterez votre image Redis :

docker network create -d bridge redisnet

Maintenant, construisez et exécutez une image Redis en tant que conteneur autonome à l’intérieur de ce conteneur réseau :

docker run -d -p 6379:6379 --name demo_redis --network redisnet redis

Après avoir démarré l’image du conteneur, vérifiez dans Docker Desktop que l’image Redis est opérationnelle :

Docker Desktop exécute l'image demo_redis.
Docker Desktop exécute l’image demo_redis.

Rappelez-vous que votre site WordPress a été lancé automatiquement à l’intérieur d’un conteneur Docker. Vous pouvez confirmer le nom et l’ID du réseau de son conteneur :

docker network ls
Noms et identifiants de réseau dans Docker Desktop.
Noms et identifiants de réseau dans Docker Desktop.

Ci-dessus, la version tronquée de l’ID réseau pour devkinsta_network est d1fa155f7a4d. Nous l’utiliserons plus tard.

Une façon de connecter votre cluster Redis et votre serveur à votre site WordPress local est de connecter directement les réseaux Redis et DevKinsta. Tout d’abord, vérifiez l’ID du conteneur pour Redis. Ici, avec la commande Docker pour lister les conteneurs, nous utilisons le commutateur -l (latest) pour n’afficher que le conteneur créé le plus récemment :

docker ps -l
Informations sur les conteneurs générées par la commande ps de Docker.
Informations sur les conteneurs générées par la commande ps de Docker.

Dans cet exemple, l’identifiant tronqué du conteneur est c3ffc630e44c.

Connectez votre conteneur Redis au réseau DevKinsta en utilisant votre ID de conteneur à la place du nôtre dans la commande ci-dessous.

docker network connect devkinsta_network c3ffc630e44c

Vous devriez avoir ajouté avec succès l’image du conteneur Redis à la liste des conteneurs en cours d’exécution dans devkinsta_network. Pour vérifier l’adresse IP du réseau du conteneur Redis, exécutez la commande suivante, en remplaçant notre ID devkinsta_network par celui que vous avez trouvé en utilisant la commande network ls dans votre projet :

docker inspect d1fa155f7a4d
Terminal affichant une partie de la sortie de la commande docker inspect.
Terminal affichant une partie de la sortie de la commande docker inspect.

Dans l’image ci-dessus, l’adresse IP du conteneur demo_redis est 172.172.0.6. Notez l’adresse IP dans votre projet avant de procéder à la connexion.

Naviguez jusqu’à la racine du site WordPress sur votre machine locale, qui se trouve sur le chemin du site affiché dans DevKinsta. Ouvrez le fichier wp-config.php dans un éditeur de texte et ajoutez le code suivant dans la section des variables de configuration personnalisées :

define('WP_REDIS_CLIENT', 'predis');
define('WP_REDIS_HOST', '172.172.0.6');
define('WP_REDIS_PORT', '6379');

L’adresse IP que vous utilisez pour WP_REDIS_HOST est celle que vous avez découverte pour demo_redis lorsque vous avez exécuté la commande docker inspect.

Ce code de configuration ajoute le client Redis, l’hôte et le port afin que le plugin puisse accéder au serveur Redis dans le même conteneur Docker et le même réseau que DevKinsta.

Pour confirmer que le plugin est connecté et fonctionne :

  1. Naviguez vers votre page d’extensions WordPress dans le tableau de bord de l’administrateur.
  2. Cliquez sur le lien « Réglages » pour Redis Object Cache.
  3. Sur la page des réglages, cliquez sur le bouton Activer le cache objet.
Redis Object Cache est accessible en écriture, mais doit être activé.
Redis Object Cache est accessible en écriture, mais doit être activé.

Une fois que le cache d’objets Redis est activé, sa page de réglages ressemble à ceci :

La page des réglages de Redis Cache Object montre que Redis est connecté et fonctionne.
La page des réglages de Redis Cache Object montre que Redis est connecté et fonctionne.

Lancement de l’interface de programmation de Redis

L’outil Redis CLI (redis-cli) est fourni avec un serveur Redis. Vous pouvez installer un serveur Redis sur les systèmes d’exploitation Windows, macOS et Linux.

Cependant, nous exécutons déjà Redis dans Docker, nous pouvons donc lancer l’outil CLI dans notre conteneur demo_redis.

Ci-dessus, lorsque nous avons utilisé la commande docker ps, nous avons appris l’ID du conteneur exécutant l’image Redis. Le nôtre commence par c3ffc630e44c. Nous pouvons utiliser cet identifiant tronqué pour cibler demo_redis et y lancer un shell de ligne de commande :

docker exec -it c3ffc630e44c /bin/sh

Vous pouvez maintenant invoquer l’outil redis-cli:

redis-cli invoqué à partir d'un shell dans Docker.
redis-cli invoqué à partir d’un shell dans Docker.

Vous pouvez envoyer un ping au serveur pour tester la connexion :

ping
Réponse du serveur à un ping dans redis-cli.
Réponse du serveur à un ping dans redis-cli.

Pour vous connecter au serveur Redis en utilisant son adresse IP et son port et tester cette connexion, exécutez la commande suivante (en utilisant l’adresse IP de votre conteneur demo_redis) :

redis-cli -h 172.172.0.6 -p 6379 ping
Envoi d'un ping au serveur Redis via son adresse IP et son port.
Envoi d’un ping au serveur Redis via son adresse IP et son port.

Vous avez réussi à vous connecter au serveur Redis à la fois sur votre machine locale et sur le conteneur Docker.

Ensuite, vérifiez que votre site WordPress stocke les données dans le cache Redis en utilisant redis-cli et sa commande keys * pour afficher toutes les clés de la base de données :

Récupération de toutes les clés de la base de données Redis à l'aide d'un astérisque.
Récupération de toutes les clés de la base de données Redis à l’aide d’un astérisque.

Vous pouvez voir que certaines données de WordPress ont déjà été sauvegardées dans le cache Redis.

Opérations CRUD de l’interface de programmation Redis

Vous pouvez effectuer des opérations CRUD sur votre base de données Redis en utilisant l’outil CLI.

Obtenons la valeur d’une clé que nous avons copiée à partir de notre requête CLI Redis keys *.

get :u.:~8r]mC->Re/gG!&mGU.[{+;]t7o<H~)c*pcU=Lx_Vs{9JkdxkL:X;M-@Y$Svwp:user_meta:1
Réponse de Redis à une requête get utilisant redis-cli.
Réponse de Redis à une requête « get » utilisant redis-cli.

Manipulons le contenu de la base de données Redis en invoquant redis-cli et en utilisant les commandes set, get et del pour créer une paire clé/valeur, interroger la nouvelle clé et la supprimer :

Opérations CRUD simples sur une base de données Redis à l'aide de redis-cli.
Opérations CRUD simples sur une base de données Redis à l’aide de redis-cli.

Ci-dessus, la tentative de récupération de la valeur d’une clé qui a été supprimée renvoie nil.

Il existe de nombreuses opérations plus avancées disponibles en utilisant l’interface de programmation Redis.

Résumé

L’interface de programmation Redis est un moyen simple de tester les commandes Redis sur votre site web avant de les mettre en œuvre dans un environnement en production. C’est également un excellent moyen de surveiller l’activité d’une instance Redis.

Dans Docker, une instance Redis fournit les outils dont vous avez besoin pour gérer la base de données – y compris redis-cli – regroupés dans un seul conteneur.

Parallèlement, l’approche Dockerisée de DevKinsta facilite le développement d’un site WordPress sur une machine locale, puis son déploiement en production en quelques clics de souris.

Si vous ne gérez pas déjà certains des 114,000 sites WordPress hébergés par Kinsta, découvrez les fonctionnalités avancées qui sont disponibles dans tous nos plans d’hébergement WordPress infogéré.

Steve Bonisteel Kinsta

Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.