Redis est une base de données en mémoire hautement disponible. Son stockage de données clé-valeur persistant sur disque est idéal pour de multiples utilisations à haute disponibilité.

D’autre part, Docker est un outil qui permet de conteneuriser les applications et les services, d’isoler leurs environnements et de les faire fonctionner séparément. Vous pouvez utiliser Docker comme un gestionnaire de paquets pour les applications et les services avec toutes les dépendances, configurations, scripts, etc. nécessaires. Un script appelé Dockerfile est placé à l’intérieur du conteneur Docker et vous permet de déployer le conteneur en tant qu’entité unique.

Cet article vous apprend à utiliser efficacement ces deux technologies open source. Il explique également pourquoi il est essentiel d’exécuter des clusters Redis dans des conteneurs Docker et quels en sont les avantages et les bénéfices par rapport à l’exécution de clusters Redis sur des machines virtuelles ou des serveurs nus.

Les différentes utilisations de Redis

Redis présente plusieurs avantages. Ses utilisations les plus populaires sont les suivantes :

  • Cache de base de données clé-valeur distribuée
  • Courtier en messages
  • Serveur de mise en cache d’objets persistants

De plus, Redis peut prendre en charge de nombreux types et structures de données, ce qui permet de l’utiliser comme couche de base de données primaire et secondaire pour les applications. Il prend également en charge les listes, les flux, les hachages, les ensembles, etc.

Cependant, vous pouvez pousser les avantages de Redis encore plus loin en le conteneurisant.

Redis est le meilleur dans un conteneur

Redis est l’une des images Docker les plus populaires dans le registre Docker, avec plus d’un milliard de téléchargements. La raison pour laquelle les applications Redis sont conteneurisées est qu’elles bénéficient des avantages de Docker et du support de la communauté pour les cas d’utilisation Redis les plus courants.

L’image Docker Redis bénéficie d’une communauté open source qui crée et maintient une documentation claire. Et pour couronner le tout, Docker est très fiable et permet une utilisation facile et une grande flexibilité.

Facilité d’utilisation

Docker isole les environnements des applications et des services exécutés dans les conteneurs. L’isolation signifie que vous pouvez emballer, construire et expédier des images Redis qui fonctionnent quel que soit le système d’exploitation hôte, ce qui facilite le développement et l’exécution d’applications Redis dans Docker. De plus, Docker Desktop simplifie la mise en place d’un environnement de développement local cohérent, ce qui est particulièrement utile pour les grandes équipes.

Sécurité :

Vous pouvez rechercher les failles de sécurité avec Redis à l’intérieur d’un conteneur. Docker utilise Snyk, un outil qui offre une visibilité sur la sécurité des images Docker. Il analyse les conteneurs Docker et fournit des détails et des mesures correctives en cas d’images corrompues. Docker peut également générer une nomenclature logicielle (SBOM) pour analyser toutes les dépendances utilisées dans la construction d’images de conteneurs, bien que cela soit encore expérimental.

Flexibilité

Docker est disponible pour la plupart des systèmes d’exploitation et des applications Unix et Windows. Comme vous utilisez les conteneurs pour isoler les logiciels de leur environnement et vous assurer qu’ils fonctionnent avec tous les systèmes, les applications et les services Redis s’exécutent toujours, quelle que soit l’infrastructure.

Fiabilité

Docker vous permet d’exécuter n’importe quelle charge de travail conteneurisée dans n’importe quel environnement de manière fiable. Redis est fiable dans Docker car les conteneurs Docker prennent périodiquement des instantanés de l’image du conteneur, ce qui vous permet de revenir à ces instantanés en cas de base de données défectueuse ou corrompue. Vous pouvez également créer un volume Docker en montant un répertoire contenant le fichier de base de données Redis à l’intérieur du conteneur.

Un volume Docker permet de protéger le conteneur contre toute forme de perte accidentelle de données. Cependant, les volumes Docker n’incluent pas d’instantanés d’image. Vous devez enregistrer ou sauvegarder manuellement les données de votre fichier de base de données Redis à intervalles réguliers.

Comment utiliser Redis avec Docker

Pour placer votre base de données Redis dans un conteneur Docker, vous devez disposer de Docker dans l’environnement cible. Les instructions suivantes vous montrent comment installer Docker sur Windows.

Vous pouvez suivre un guide sur le site web de Docker pour un système d’exploitation Unix ou basé sur Unix. Après l’installation et la configuration, vous pouvez créer un réseau à l’intérieur de votre conteneur Docker. Ensuite, vous pouvez installer Redis et créer une base de données. Enfin, vous pouvez effectuer des opérations sur votre base de données Redis.

Tout d’abord, installez Docker sur votre système d’exploitation. Si vous le souhaitez, accédez au Docker Hub et créez un compte. Vous avez besoin d’un compte pour créer et publier vos images.

Hub Docker
Hub Docker

Après avoir créé un compte, connectez-vous à Docker Hub et téléchargez la dernière version de Docker Desktop pour votre système d’exploitation.

Page de téléchargement de Docker
Page de téléchargement de Docker

Après la procédure d’installation, allez dans votre fenêtre de terminal pour voir si le moteur Docker est prêt à fonctionner et saisissez la commande suivante :

docker --version
Version de Docker installée
Version de Docker installée

Saisissez ensuite : docker-compose --version.

Compose installé avec Docker
Compose installé avec Docker

Compose est un outil permettant de définir et d’exécuter des applications Docker multi-conteneurs à l’aide de fichiers YAML, que vous utilisez pour configurer les services d’application.

Vous pouvez exécuter un Redis Dockerisé pour valider que le moteur Docker est opérationnel en utilisant le code ci-dessous. Cet exemple exécute l’image Redis depuis Docker Hub et la nomme my-redis-container.

docker run --name my-redis-container -d redis
Image Redis depuis Docker Hub nommée my-redis-container
Image Redis depuis Docker Hub nommée my-redis-container

Parce que vous n’avez pas l’image localement, Docker extrait l’image Redis du Docker Hub.

Vous pouvez maintenant ouvrir Docker Desktop pour confirmer que l’image Redis a bien été extraite. Dans le tableau de bord, cliquez sur Images dans le panneau de gauche.

Docker Desktop
Docker Desktop

Vous pouvez maintenant créer un réseau. Notez que le pilote Docker utilise les pilotes de réseau intégrés Bridge ou Overlay pour créer un réseau Docker. Vous pouvez également installer et utiliser un pilote réseau tiers.

La différence est que les réseaux bridge sont isolés sur une seule installation de moteur Docker, tandis que les réseaux overlay couvrent plusieurs hôtes Docker, chacun exécutant un moteur.

Saisissez :

docker network create -d bridge kinsta-demo-network
Réseau Docker avec le pilote bridge
Réseau Docker avec le pilote bridge

Si vous ne spécifiez aucun pilote par défaut, Docker utilise le pilote Bridge pour créer un nouveau réseau car il crée automatiquement le pilote Bridge lorsque vous installez le moteur Docker. Cependant, si vous exécutez un conteneur Docker avec la commande Docker run, il n’utilisera pas ce réseau.

Maintenant que vous avez un réseau, vous pouvez installer Redis dans le conteneur Docker. Pour cela, saisissez : docker pull redis.

Téléchargez l'image Redis depuis le Docker Hub
Téléchargez l’image Redis depuis le Docker Hub

Pour vérifier que l’image Redis est installée correctement, exécutez l’une des commandes suivantes :

docker images
docker image ls
Images Docker disponibles dans le terminal de l'utilisateur
Images Docker disponibles dans le terminal de l’utilisateur

Ensuite, vous créez et démarrez le conteneur Redis. Pour cela, exécutez la commande suivante :

docker run -it –name dev_kinsta_redis_container -d redis
Container Docker
Container Docker

Vérifiez maintenant que Redis fonctionne dans le conteneur. Pour cela, saisissez : docker ps.

Vérifiez que Redis fonctionne dans un conteneur
Vérifiez que Redis fonctionne dans un conteneur

Maintenant que vous avez confirmé que votre conteneur Docker est opérationnel, vous pouvez ajouter le conteneur au réseau. Saisissez : docker network connect .

Ajoutez un conteneur Docker au réseau Docker créé
Ajoutez un conteneur Docker au réseau Docker créé

Si tout fonctionne comme prévu, l’étape suivante consiste à vérifier que votre serveur Redis fonctionnant dans Docker est prêt à accepter des connexions. Pour cela, utilisez docker logs.

Verify the Redis image is running inside the Docker container
Vérifiez que l’image Redis tourne dans le conteneur Docker

Ensuite, vous devez créer une base de données car vous avez besoin d’un moyen de vous connecter au conteneur Redis pour exécuter des commandes sur le serveur. Pour cela, saisissez : docker exec -it bash. Vous pouvez utiliser indifféremment le nom du conteneur et l’ID du conteneur.

Connectez-vous à l'instance du conteneur Redis.
Connectez-vous à l’instance du conteneur Redis.

Dans le conteneur, utilisez la CLI pour exécuter des commandes. Notez que Redis a automatiquement installé les hôtes Docker. Pour utiliser la CLI de Redis, saisissez : redis-cli.

Utilisez la CLI Redis pour exécuter des commandes Redis
Utilisez la CLI Redis pour exécuter des commandes Redis

Ceci vous connecte au port par défaut de Redis sur l’hôte local. Saisissez : ping, et la réponse devrait être pong.

Testez si la connexion Redis est opérationnelle
Testez si la connexion Redis est opérationnelle

Ensuite, sélectionnez une base de données dans votre serveur Redis en saisissant select. Bien que la base de données par défaut soit 0, sélectionnez db 1.

Select a particular Redis database
Sélectionnez une base de données Redis particulière

Insérez ensuite des données dans la base de données. Utilisez la commande Redis SET. Pour cela, saisissez SET <key> <value>.

Par exemple :

SET mykey "Hello"

Pour obtenir la même clé, saisissez :

get myKey
Insérer et récupérer des données dans Redis
Insérer et récupérer des données dans Redis

Pour obtenir la valeur de la clé, exécutez get. Vous obtiendrez la valeur. Ensuite, surveillez votre base de données Redis en saisissant MONITOR.

Contrôlez la base de données Redis
Contrôlez la base de données Redis

Enfin, arrêtez le serveur Redis en quittant l’interface de programmation. Saisissez deux fois exit pour quitter l’interface de commande et Redis.

Quitter l'interface de programmation Redis
Quitter l’interface de programmation Redis

Enfin, arrêtez le conteneur Redis en saisissant docker stop.

Exécutez la commande pour arrêter l'exécution du conteneur Docker
Exécutez la commande pour arrêter l’exécution du conteneur Docker

Redis avec DevKinsta

DevKinsta vous permet de connecter un site WordPress à une base de données Redis. Avec DevKinsta, l’extension Redis fonctionne de manière transparente comme un cache d’objet pour conserver les données à travers plusieurs chargements de pages. Cela signifie qu’en utilisant l’extension Redis, vous pouvez utiliser le cache pour réutiliser des objets au lieu d’interroger constamment la base de données MySQL.

Après avoir téléchargé et configuré DevKinsta, installez Docker Desktop en tant que dépendance, qu’il utilise pour créer des fichiers d’environnement locaux à l’intérieur d’un conteneur. Avec cette configuration, vous pouvez configurer le module Redis dans Devkinsta.

Par conséquent, le module Redis pour DevKinsta peut être utilisé comme source secondaire, réduisant la charge sur la base de données primaire, augmentant les temps de réponse et accélérant le fonctionnement de l’application.

Cela se traduit par une augmentation de la charge de l’application et une mise à l’échelle efficace. Consultez cet article pour utiliser l’extension Redis sur votre site web.

En résumé

L’exécution de Redis dans un conteneur Docker présente de nombreux avantages. Il offre un environnement en bac à sable pour vos applications, de sorte que vous n’avez plus à vous soucier de la plateforme sur laquelle vous déployez vos applications. De plus, Docker permet une facilité d’utilisation, une flexibilité et une grande fiabilité.

En ce qui concerne la sécurité, vous pouvez vérifier et analyser les vulnérabilités de sécurité dès le départ avec Synk, un outil qui offre une visibilité sur la sécurité des images Docker. En ce qui concerne la flexibilité, Docker fonctionne avec la plupart des systèmes d’exploitation et des applications Windows et Unix. Cette flexibilité signifie que les applications ou services dockerisés ou conteneurisés fonctionnent toujours quel que soit le système d’exploitation.

Il est facile d’utiliser Docker et le module Redis avec DevKinsta, qui lance un site WordPress dockerisé localement lorsque vous le démarrez. Découvrez DevKinsta et l’extension Redis pour profiter de la puissance de Redis dans Docker dès aujourd’hui.

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.