Comment installer et configurer Redis sur Linux : un guide complet étape par étape
Redis est un magasin de structures de données en mémoire puissant, open-source et largement utilisé comme base de données, cache et courtier de messages. Réputé pour ses performances exceptionnelles et sa polyvalence, Redis est la solution de choix pour les développeurs cherchant à accélérer considérablement les applications en mettant en cache les données fréquemment demandées, en gérant les sessions et en traitant les analyses en temps réel. Que vous exécutiez une application web à fort trafic sur un plan VPS Hosting ou que vous gériez une infrastructure dédiée, ce guide complet vous guide à travers chaque étape de l’installation, de la configuration et de la sécurisation de Redis sur un système Linux.
Qu’est-ce que Redis et pourquoi devriez-vous l’utiliser ?
Avant de plonger dans le processus d’installation, il vaut la peine de comprendre ce qui rend Redis si populaire :
- Stockage en mémoire : Redis stocke les données en RAM, ce qui rend les opérations de lecture et d’écriture extrêmement rapides — souvent complétées en moins d’une milliseconde.
- Structures de données polyvalentes : Prend en charge les chaînes, les hachages, les listes, les ensembles, les ensembles triés, les bitmaps, et plus encore.
- Options de persistance : Malgré le stockage en mémoire, Redis peut persister les données sur le disque pour survivre aux redémarrages.
- Messagerie Pub/Sub : Redis prend en charge les modèles de messagerie publication/abonnement pour la communication en temps réel entre les services.
- Large support linguistique : Des bibliothèques clientes officielles existent pour Python, PHP, Node.js, Java, Ruby, Go, et bien d’autres.
Redis est particulièrement précieux dans les environnements où les performances des applications sont critiques — par exemple, lorsque votre backend est hébergé sur un Dedicated Server servant des millions de requêtes par jour.
Prérequis
Avant de commencer, assurez-vous que vous disposez de :
- Un serveur Linux exécutant Ubuntu/Debian ou CentOS/RHEL
- Accès root ou sudo au serveur
- Une compréhension de base de la ligne de commande Linux
- Une connexion Internet active pour télécharger les packages
Étape 1 : Mettre à jour votre système
Commencez toujours par mettre à jour l’index des packages de votre système et mettre à niveau les packages installés vers leurs dernières versions. Cela garantit la compatibilité et la sécurité :
sudo apt update && sudo apt upgrade -yPour les systèmes CentOS/RHEL :
sudo yum update -yGarder votre serveur à jour est une pratique de sécurité fondamentale, en particulier dans les environnements de production.
Étape 2 : Installer Redis
La plupart des principales distributions Linux incluent Redis dans leurs dépôts de packages officiels, ce qui rend l’installation simple.
Sur Ubuntu / Debian
sudo apt install redis-server -ySur CentOS / RHEL
Les systèmes CentOS/RHEL nécessitent que le dépôt EPEL (Extra Packages for Enterprise Linux) soit d’abord activé :
sudo yum install epel-release -y
sudo yum install redis -y> Remarque : Sur les versions plus récentes de CentOS/RHEL (8+), vous pouvez utiliser dnf au lieu de yum :
> “`bash
> sudo dnf install redis -y
> “`
Étape 3 : Vérifier l’installation
Une fois l’installation terminée, confirmez que Redis a été installé correctement en vérifiant sa version :
redis-server --versionSortie attendue (exemple) :
Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=...Si vous voyez un numéro de version, Redis a été installé avec succès sur votre système.
Étape 4 : Démarrer et activer le service Redis
Après l’installation, vous devez démarrer le service Redis et le configurer pour qu’il se lance automatiquement au démarrage du système.
Sur Ubuntu / Debian
sudo systemctl start redis
sudo systemctl enable redisSur CentOS / RHEL
sudo systemctl start redis
sudo systemctl enable redisVérifier que Redis s’exécute
sudo systemctl status redisSortie attendue :
● redis.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis.service; enabled)
Active: active (running) since ...Un statut active (running) en vert confirme que Redis fonctionne correctement.
Étape 5 : Configurer Redis
Le comportement de Redis est contrôlé par son fichier de configuration principal :
- Ubuntu/Debian :
/etc/redis/redis.conf - CentOS/RHEL :
/etc/redis.conf
Ouvrez le fichier de configuration avec un éditeur de texte :
sudo nano /etc/redis/redis.confVoici les options de configuration les plus importantes que vous devriez examiner et ajuster.
5.1 Définir un mot de passe (authentification)
Par défaut, Redis ne nécessite pas d’authentification. Pour tout environnement de production, définir un mot de passe fort est essentiel :
Trouvez la ligne contenant # requirepass et mettez-la à jour :
requirepass your_strong_password_hereChoisissez un mot de passe long et généré aléatoirement. Redis est extrêmement rapide, ce qui signifie que les attaques par force brute peuvent tenter des centaines de milliers de suppositions par seconde sans limitation de débit.
5.2 Lier l’adresse IP
Par défaut, Redis se lie uniquement à 127.0.0.1 (localhost), ce qui empêche l’accès externe. C’est le paramètre par défaut le plus sûr.
Si votre application doit se connecter à Redis à partir d’un autre serveur, vous pouvez vous lier à une adresse IP supplémentaire :
bind 127.0.0.1 192.168.1.100> Avertissement de sécurité : Ne liez jamais Redis à 0.0.0.0 (toutes les interfaces) sur un serveur accessible au public sans règles de pare-feu appropriées. Les instances Redis exposées sont un vecteur d’attaque courant.
5.3 Modifier le port par défaut
Redis écoute sur le port 6379 par défaut. Modifier ce port ajoute une couche d’obscurité :
port 6380N’oubliez pas de mettre à jour vos règles de pare-feu et vos chaînes de connexion d’application si vous modifiez le port.
5.4 Appliquer les modifications de configuration
Après avoir modifié redis.conf, redémarrez le service Redis pour appliquer toutes les modifications :
sudo systemctl restart redisÉtape 6 : Tester l’installation de Redis
Utilisez l’interface de ligne de commande Redis intégrée (CLI) pour vérifier que Redis fonctionne correctement :
redis-cliSi vous avez défini un mot de passe, authentifiez-vous d’abord :
AUTH your_strong_password_hereExécuter un test Ping
pingRéponse attendue :
PONGDéfinir et récupérer une paire clé-valeur
SET mykey "Hello, Redis!"
GET mykeyRéponse attendue :
"Hello, Redis!"Si Redis retourne la valeur stockée correctement, votre installation est entièrement fonctionnelle et la base de données stocke et récupère les données comme prévu.
Quitter la CLI
exitÉtape 7 : Configurer Redis en tant que démon en arrière-plan (Optionnel)
Si vous souhaitez que Redis s’exécute en tant que processus démon en arrière-plan (plutôt qu’un processus au premier plan), configurez l’option daemonize dans redis.conf :
daemonize yesAprès avoir enregistré le fichier, redémarrez Redis :
sudo systemctl restart redisVérifiez que le service s’exécute en arrière-plan :
sudo systemctl status redisVous pouvez également confirmer que le processus Redis est actif en utilisant :
ps aux | grep redisÉtape 8 : Activer la persistance de Redis (Optionnel mais recommandé)
Par défaut, Redis stocke les données uniquement en mémoire, ce qui signifie que les données sont perdues si le serveur redémarre. Redis fournit deux mécanismes de persistance pour résoudre ce problème :
Option 1 : RDB (Redis Database Backup) — Snapshots
RDB crée des snapshots ponctuels de votre ensemble de données à des intervalles spécifiés. Configurez-le dans redis.conf :
# Save a snapshot if at least 1 key changed in 900 seconds (15 minutes)
save 900 1
# Save a snapshot if at least 10 keys changed in 300 seconds (5 minutes)
save 300 10
# Save a snapshot if at least 10,000 keys changed in 60 seconds
save 60 10000RDB est efficace pour les sauvegardes et la récupération après sinistre, mais peut perdre les données écrites entre les snapshots.
Option 2 : AOF (Append Only File) — Journalisation des écritures
AOF enregistre chaque opération d’écriture dans un fichier, offrant des garanties de durabilité beaucoup plus fortes :
appendonly yesVous pouvez également configurer la politique de synchronisation AOF :
# Options: always, everysec, no
appendfsync everysecalways— Le plus sûr, mais le plus lent (synchronise après chaque écriture)everysec— Bon équilibre entre performance et sécurité (synchronise chaque seconde)no— Le plus rapide, mais dépend du calendrier de vidage du système d’exploitation
> Bonne pratique : Pour les environnements de production, utilisez à la fois RDB et AOF ensemble pour une durabilité maximale des données.
Étape 9 : Sécuriser Redis — Meilleures pratiques
La sécurité est critique pour tout déploiement de Redis. Suivez ces meilleures pratiques pour renforcer votre instance Redis :
1. Activer l’authentification par mot de passe
Comme décrit à l’étape 5.1, définissez toujours une valeur requirepass forte dans redis.conf.
2. Restreindre l’accès réseau
- Liez Redis à
127.0.0.1sauf si l’accès à distance est explicitement requis. - Utilisez un réseau privé ou un VPN pour la communication Redis inter-serveurs.
3. Configurer les règles du pare-feu
Autorisez le trafic Redis uniquement à partir d’adresses IP de confiance. Utilisation de ufw sur Ubuntu :
sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw deny 6379Utilisation de firewalld sur CentOS/RHEL :
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="6379" accept'
sudo firewall-cmd --reload4. Renommer ou désactiver les commandes dangereuses
Redis dispose de commandes administratives puissantes (comme FLUSHALL, CONFIG, DEBUG) qui pourraient être exploitées. Renommez ou désactivez-les dans redis.conf :
rename-command FLUSHALL ""
rename-command CONFIG "SECURE_CONFIG_XYZ123"
rename-command DEBUG ""5. Exécuter Redis en tant qu’utilisateur non-root
Le package Redis sur la plupart des distributions crée déjà un utilisateur système dédié redis. Assurez-vous que Redis n’est jamais exécuté en tant que root.
6. Garder Redis à jour
Mettez à jour régulièrement Redis pour corriger les vulnérabilités connues :
sudo apt update && sudo apt upgrade redis-server -yÉtape 10 : Intégrer Redis à vos applications
Avec Redis installé et sécurisé, vous pouvez maintenant l’intégrer à votre pile d’applications. Voici un aperçu rapide des intégrations linguistiques populaires :
Python — redis-py
pip install redisimport redis
r = redis.Redis(host='127.0.0.1', port=6379, password='your_password', decode_responses=True)
r.set('greeting', 'Hello from Python!')
print(r.get('greeting'))PHP — Extension phpredis
sudo apt install php-redis -y<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('your_password');
$redis->set('greeting', 'Hello from PHP!');
echo $redis->get('greeting');
?>Node.js — ioredis
npm install ioredisconst Redis = require('ioredis');
const redis = new Redis({ host: '127.0.0.1', port: 6379, password: 'your_password' });
redis.set('greeting', 'Hello from Node.js!');
redis.get('greeting').then(value => console.log(value));Redis s’intègre de manière transparente à pratiquement tous les frameworks web modernes et CMS, y compris WordPress, Laravel, Django et Express.js — ce qui en fait un outil inestimable pour la pile de tout développeur.
Cas d’utilisation courants de Redis
Comprendre où Redis excelle vous aide à tirer le meilleur parti de votre déploiement :
| Cas d’utilisation | Description |
|---|---|
| Stockage de session | Stockez les sessions utilisateur dans Redis pour un accès rapide et évolutif sur plusieurs serveurs d’applications |
| Mise en cache de base de données | Mettez en cache les résultats de requêtes SQL coûteuses pour réduire la charge de la base de données |
| Limitation de débit | Suivez les nombres de requêtes API par utilisateur/IP à l’aide des compteurs Redis |
| Classements en temps réel | Utilisez les ensembles triés pour maintenir les classements en direct |
| Mise en file d’attente des messages | Utilisez les listes Redis ou Pub/Sub pour les files d’attente de tâches légères |
| Recherche en texte intégral | Utilisez le module RediSearch pour l’indexation de recherche rapide |
Dépannage des problèmes courants de Redis
Échec du démarrage de Redis
Vérifiez les journaux pour les erreurs :
sudo journalctl -u redis -n 50Les causes courantes incluent les conflits de port, la syntaxe redis.conf incorrecte ou une mémoire insuffisante.
Erreur de connexion refusée
Vérifiez que Redis écoute sur l’adresse et le port attendus :
ss -tlnp | grep redisErreurs d’authentification
Si vous recevez ###PP
