Redis est l’un des outils les plus populaires et indispensables du développement web moderne. Que ce soit pour accélérer une application, gérer des sessions d’utilisateurs ou manipuler des files de tâches, il est présent dans presque toutes les architectures performantes.
Sommaire
- Introduction
- Redis : c’est quoi et à quoi ça sert ?
- Pourquoi Redis est-il aussi rapide ?
- Les principaux cas d’usage de Redis
- Les structures de données supportées
- La persistance des données dans Redis
- Premiers pas : les commandes essentielles
- Redis vs Bases de données relationnelles (SQL)
- Bonnes pratiques
- Conclusion
- FAQ
Introduction
Si tu t’intéresses au développement web moderne (back-end, API ou DevOps), tu as forcément déjà entendu parler de Redis.
Que tu veuilles :
- Réduire le temps de réponse de ton site web en mettant en cache des requêtes lourdes,
- Stocker les sessions de tes utilisateurs pour qu’ils ne soient pas déconnectés,
- Mettre en place un système de notifications en temps réel,
- Gérer une file d’attente d’envoi d’emails en arrière-plan,
tu auras besoin de comprendre et d’utiliser Redis.

Dans ce guide complet pour débutants, on va voir ensemble :
- Ce qu’est Redis et son fonctionnement de base,
- Pourquoi il offre des performances exceptionnelles,
- Ses principaux cas d’utilisation concrets,
- Les types de données qu’il sait manipuler,
- Comment exécuter tes premières commandes Redis.
À la fin de cet article, tu auras une vision claire de Redis et tu sauras exactement dans quels cas l’intégrer dans tes projets.
Redis : c’est quoi et à quoi ça sert ?
Qu’est-ce que Redis ?
Redis (Remote Dictionary Server) est une base de données NoSQL open-source de type clé-valeur, fonctionnant directement en mémoire (RAM). Tu peux retrouver la documentation officielle et télécharger le projet directement sur le site officiel de Redis.
Concrètement :
- Une base de données classique (MySQL, PostgreSQL) stocke ses données sur un disque dur (SSD/HDD). Les lectures et écritures prennent du temps.
- Redis stocke tout en mémoire RAM. La lecture et l’écriture s’exécutent ainsi en une fraction de millisecondes.
À quoi ça sert ?
Même s’il s’agit d’une base de données, Redis est rarement utilisé comme base de données principale. On l’utilise généralement en complément d’une base SQL comme couche de cache, gestionnaire de sessions ou file d’attente.
Pourquoi Redis est-il aussi rapide ?
Redis est capable de traiter plus de 100 000 requêtes par seconde sur un serveur standard. Cette rapidité s’explique par deux choix techniques majeurs :
- Le stockage 100% en RAM : Accéder à la mémoire vive est des milliers de fois plus rapide qu’accéder à un disque dur.
- Une architecture Single-Threaded avec multiplexage E/S : Redis traite les requêtes une par une sur un seul fil d’exécution. Cela évite les ralentissements dus à la gestion de plusieurs threads (verrous, conflits de mémoire).

Les principaux cas d’usage de Redis
Voici les utilisations les plus fréquentes de Redis dans les applications modernes :
1. La mise en cache (Caching)
C’est l’utilisation n°1. Plutôt que de refaire une requête SQL coûteuse à chaque fois qu’un utilisateur visite une page, tu stockes le résultat dans Redis. Les visites suivantes lisent les données dans Redis instantanément.
2. La gestion des sessions utilisateur
Dans une application avec plusieurs serveurs (Load Balancing), Redis permet d’avoir un magasin centralisé où tous les serveurs peuvent savoir immédiatement si un utilisateur est authentifié.
3. Les files d’attente de tâches (Queues)
Redis permet de stocker une liste de tâches à exécuter en arrière-plan (envoi d’emails, génération de rapports PDF). Dans l’écosystème Node.js, des outils très populaires comme BullMQ s’appuient directement sur Redis pour gérer ces files d’attente.
4. Le système Publish/Subscribe (Pub/Sub)
Redis permet à une application d’émettre des messages et à d’autres de les écouter en temps réel. C’est parfait pour développer un tchat en ligne ou recevoir des notifications instantanées.
5. La limitation de débit (Rate Limiting)
Grâce à la possibilité de donner une durée de vie (TTL) à chaque clé, Redis permet de bloquer un utilisateur ou une IP qui ferait trop de requêtes en peu de temps (ex: max 100 requêtes / minute).
Les structures de données supportées
Contrairement à d’autres outils de cache simples, Redis supporte des structures de données très variées :
| Structure | Description | Exemple d’usage |
|---|---|---|
| String | Texte, nombre ou donnée binaire. | Cache HTML, compteurs de vues. |
| Hash | Objet avec des champs et des valeurs (comme un JSON à un niveau). | Profil utilisateur (nom, email, rôle). |
| List | Liste ordonnée d’éléments. | File d’attente (FIFO), historique d’actions. |
| Set | Collection d’éléments uniques (sans doublons). | Liste d’abonnés uniques, tags. |
| Sorted Set (ZSet) | Set où chaque élément a un score pour le tri. | Classement (Leaderboard) de jeux vidéo. |
La persistance des données dans Redis
Comme Redis garde tout en mémoire RAM, que se passe-t-il si le serveur s’éteint ? Redis propose deux solutions pour sauvegarder tes données sur le disque :
- RDB (Redis Database) : Prend des photos (snapshots) de ta base de données à intervalles réguliers (ex: toutes les 5 minutes).
- AOF (Append Only File) : Enregistre chaque opération d’écriture dans un fichier journal au fur et à mesure.
En production, on combine souvent RDB et AOF pour garantir à la fois vitesse et sécurité.
Premiers pas : les commandes essentielles
Une fois Redis installé, tu peux interagir avec lui via l’outil en ligne de commande redis-cli. Voici les commandes de base :
1. Gérer des chaînes de caractères (Strings)
# Enregistrer une valeur
SET user:nom "Donald Tambou"
# Lire une valeur
GET user:nom
# Résultat : "Donald Tambou"
# Créer une clé qui s'efface automatiquement après 60 secondes
SETEX cache:accueil 60 "<html>...</html>"
2. Gérer un profil sous forme de Hash
# Créer/mettre à jour un utilisateur
HSET user:100 nom "Donald" role "Admin"
# Récupérer une information spécifique
HGET user:100 nom
# Résultat : "Donald"
# Récupérer tout le profil
HGETALL user:100
3. Supprimer des données
# Vérifier si une clé existe (retourne 1 si oui, 0 si non)
EXISTS user:nom
# Supprimer une clé
DEL user:nom
Redis vs Bases de données relationnelles (SQL)
| Critère | Redis | Base SQL (MySQL, PostgreSQL) |
|---|---|---|
| Lieu de stockage | Mémoire RAM | Disque dur (SSD / HDD) |
| Vitesse | Ultra-rapide (< 1 milliseconde) | Rapide (quelques ms à dizaines de ms) |
| Structure | Clé-Valeur & Types complexes | Tables avec lignes et colonnes |
| Rôle principal | Cache, sessions, tâches temps réel | Stockage principal et permanent des données |
Bonnes pratiques
- Organise tes clés avec des deux-points (
:) : Utilise un nommage clair commeapp:users:1000:session. - Ajoute toujours un temps d’expiration (TTL) au cache : Évite de remplir la mémoire RAM inutilement avec des clés périmées.
- Attention à la commande
KEYS *: N’utilise jamais cette commande en production car elle parcourt toute la base et bloque Redis. Utilise plutôt la commandeSCAN.
Conclusion
Tu as maintenant les bases indispensables pour comprendre Redis :
- Tu sais pourquoi il est extrêmement rapide (stockage RAM et Single-Threaded),
- Tu connais ses cas d’usage principaux (mise en cache, sessions, queues),
- Tu maîtrises les commandes fondamentales pour manipuler tes données.
Pour aller plus loin, tu peux installer Redis localement avec Docker et commencer à l’intégrer dans tes applications web !
N’hésite pas à consulter régulièrement mon Blog pour découvrir d’autres guides et tutoriels sur l’écosystème web et DevOps.
FAQ
Redis est-il gratuit?
Oui, Redis est open-source et gratuit à utiliser pour des projets personnels ou commerciaux.
Redis peut-il remplacer MySQL ou PostgreSQL ?
Non. La mémoire RAM coûte plus cher que le disque dur et Redis n’est pas optimisé pour les requêtes complexes de recherche. Il s’utilise en complément de ta base habituelle.
Que se passe-t-il si la RAM du serveur est pleine ?
Redis peut être configuré pour supprimer automatiquement les clés les plus anciennes (stratégie LRU) afin de faire de la place pour les nouvelles données.