Comprendre Redis : Le Guide Complet pour Débutants

75 / 100 Score SEO

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

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.

redis-illustration
Redis conserve l’intégralité de ses données en mémoire RAM pour offrir des performances ultra-rapides.

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 :

  1. Le stockage 100% en RAM : Accéder à la mémoire vive est des milliers de fois plus rapide qu’accéder à un disque dur.
  2. 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).

single-threaded-architecture
Schéma du modèle Single-Threaded et du multiplexage d’E/S de Redis.

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 :

StructureDescriptionExemple d’usage
StringTexte, nombre ou donnée binaire.Cache HTML, compteurs de vues.
HashObjet avec des champs et des valeurs (comme un JSON à un niveau).Profil utilisateur (nom, email, rôle).
ListListe ordonnée d’éléments.File d’attente (FIFO), historique d’actions.
SetCollection 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èreRedisBase SQL (MySQL, PostgreSQL)
Lieu de stockageMémoire RAMDisque dur (SSD / HDD)
VitesseUltra-rapide (< 1 milliseconde)Rapide (quelques ms à dizaines de ms)
StructureClé-Valeur & Types complexesTables avec lignes et colonnes
Rôle principalCache, sessions, tâches temps réelStockage principal et permanent des données

Bonnes pratiques

  • Organise tes clés avec des deux-points (:) : Utilise un nommage clair comme app: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 commande SCAN.

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.

75 / 100 Score SEO

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut