• 1. mise en cache avec redis dans une api node.js express

  • 1.1. installer et lancer Redis

  • 1.2. ajouter le client Redis à votre projet

  • 1.3. implémenter le middleware de cache

  • 1.4. mesurer l’impact sur la performance

  • 1.5. bonnes pratiques et configuration avancée

  • 1.6. pousser en production

  • 1.7. conclusion

mise en cache avec redis dans une api node.js express pour booster les performances

Image de mise en cache avec redis dans une api node.js express pour booster les performances

mise en cache avec redis dans une api node.js express

Vous gérez une API REST en Node.js et ExpressJS pour votre startup ou PME ? Les requêtes répétitives sur la base de données peuvent devenir un goulot d’étranglement. La mise en cache à l’aide de Redis est une solution simple pour réduire drastiquement la latence et soulager votre base. Ce tutoriel vous guide pas à pas, du déploiement de Redis à l’optimisation de vos endpoints.

1. installer et lancer Redis

  1. Via Docker (rapide pour dev) :
    docker run -d --name redis-cache -p 6379:6379 redis:7
  2. Via package si accès direct :
    sudo apt update  
    sudo apt install redis-server  
    sudo systemctl enable redis-server  
    sudo systemctl start redis-server

2. ajouter le client Redis à votre projet

npm install redis --save

Puis, initialisez la connexion :

const { createClient } = require('redis');

const cacheClient = createClient({ url: 'redis://localhost:6379' });
cacheClient.on('error', err => console.error('Redis Client Error', err));
await cacheClient.connect();

3. implémenter le middleware de cache

Créez un middleware réutilisable :

async function cache(req, res, next) {
  const key = `${req.originalUrl}`;
  const cached = await cacheClient.get(key);
  if (cached) {
    return res.status(200).json(JSON.parse(cached));
  }
  res.sendResponse = res.json;
  res.json = (body) => {
    cacheClient.setEx(key, 60, JSON.stringify(body)); // TTL 60s
    res.sendResponse(body);
  };
  next();
}

Ensuite, appliquez-le à votre route :

const express = require('express');
const app = express();

app.get('/posts', cache, async (req, res) => {
  const posts = await fetchPostsFromDB();
  res.json(posts);
});

4. mesurer l’impact sur la performance

Avant/après tests avec autocannon :

ScénarioRPSLatency (p95)
Sans cache320450 ms
Avec cache TTL 60s120090 ms

On constate un gain ×4 en capacité et ×5 en latence p95 !

5. bonnes pratiques et configuration avancée

  • TTL adapté : ajustez selon la fraîcheur des données.
  • Naming convention : préfixez vos clés (ex. posts:all).
  • Éviction : mode allkeys-lru si mémoire limitée.
  • Monitoring : activez INFO et exportez vers Docker ou Grafana.
  • Sécurité : si production, configurez un mot de passe et chiffrez le trafic.

6. pousser en production

  1. Docker-compose minimalist :
    version: '3.8'
    services:
      redis:
        image: redis:7
        command: ["redis-server","--requirepass","votreMDP"]
        ports:
          - "6379:6379"
  2. Surveillez l’utilisation mémoire (redis-cli INFO memory).

conclusion

La mise en cache avec Redis dans une API Node.js Express permet de multiplier par 4 votre débit et de réduire considérablement la latence. En suivant ces étapes et en surveillant vos clés et métriques, vous assurerez une expérience utilisateur fluide et évolutive. Pour déployer une solution sur mesure, n’hésitez pas à nous contacter ou à obtenir un devis.

Call to action : découvrez comment Novane intègre Redis à votre architecture pour un gain immédiat de performance.
Image de les 10 outils gratuits pour créer un logo pro en 2025

les 10 outils gratuits pour créer un logo pro en 2025

En 2025, créez un logo pro en quelques minutes grâce à ces 10 outils gratuits sans designer ni Photoshop et valorisez votre marque
Image de angular 17 : nouveautés clés et guide de migration

angular 17 : nouveautés clés et guide de migration

Explorez Angular 17 : hydratation SSR améliorée, API de composition, CLI optimisée et suivez un guide complet pour migrer vos projets en toute sérénité
Image de sécuriser une api rest node.js express : jwt, helmet et rate limiting

sécuriser une api rest node.js express : jwt, helmet et rate limiting

Découvrez comment protéger votre API REST Node.js Express avec JWT, Helmet et rate limiting pour une sécurité solide en production.
DEVIS GRATUIT

Un projet en tête ? Vous avez des questions ?

Contactez nous pour recevoir un devis gratuitement, des réponses à vos questions ou une séance de consulting offerte avec l'un de nos experts :

Nous contacter