15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
31.10.2024
1 +1

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 -y

Pour les systèmes CentOS/RHEL :

sudo yum update -y

Garder 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 -y

Sur 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 --version

Sortie 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 redis

Sur CentOS / RHEL

sudo systemctl start redis
sudo systemctl enable redis

Vérifier que Redis s’exécute

sudo systemctl status redis

Sortie 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.conf

Voici 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_here

Choisissez 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 6380

N’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-cli

Si vous avez défini un mot de passe, authentifiez-vous d’abord :

AUTH your_strong_password_here

Exécuter un test Ping

ping

Réponse attendue :

PONG

Définir et récupérer une paire clé-valeur

SET mykey "Hello, Redis!"
GET mykey

Ré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 yes

Après avoir enregistré le fichier, redémarrez Redis :

sudo systemctl restart redis

Vérifiez que le service s’exécute en arrière-plan :

sudo systemctl status redis

Vous 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 10000

RDB 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 yes

Vous pouvez également configurer la politique de synchronisation AOF :

# Options: always, everysec, no
appendfsync everysec
  • always — 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.1 sauf 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 6379

Utilisation 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 --reload

4. 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 redis
import 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 ioredis
const 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’utilisationDescription
Stockage de sessionStockez les sessions utilisateur dans Redis pour un accès rapide et évolutif sur plusieurs serveurs d’applications
Mise en cache de base de donnéesMettez 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ébitSuivez les nombres de requêtes API par utilisateur/IP à l’aide des compteurs Redis
Classements en temps réelUtilisez les ensembles triés pour maintenir les classements en direct
Mise en file d’attente des messagesUtilisez les listes Redis ou Pub/Sub pour les files d’attente de tâches légères
Recherche en texte intégralUtilisez 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 50

Les 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 redis

Erreurs d’authentification

Si vous recevez ###PP

15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer