Qu'est-ce que node-cache et pourquoi en a-t-on besoin ?
La bibliothèque node-cache est un système de cache simple et rapide pour Node.js, écrit en TypeScript. Elle permet de stocker des données en mémoire (in-memory cache), ce qui accélère considérablement l'accès aux informations fréquemment demandées (par exemple, les résultats de requêtes de base de données, les réponses API, les calculs). En TypeScript, node-cache offre un typage strict, rendant le code plus prévisible et plus sûr.
La mise en cache est nécessaire pour réduire la charge sur le serveur, diminuer le temps de réponse et économiser des ressources lors d'opérations répétitives. Node-cache est idéal pour les projets de petite et moyenne envergure où un cache distribué (comme Redis) n'est pas requis, mais où un cache in-memory léger est nécessaire.
Installation
Installez le paquet via npm ou yarn :
npm install node-cache
# ou
yarn add node-cachePour TypeScript, les types sont déjà inclus dans le paquet, il n'est pas nécessaire d'installer @types supplémentaires.
Fonctions principales
- set(key, value, ttl) — enregistre une valeur par clé avec une durée de vie optionnelle (TTL) en secondes.
- get(key) — récupère la valeur par clé. Retourne undefined si la clé est absente ou expirée.
- del(key) — supprime une ou plusieurs clés.
- has(key) — vérifie la présence d'une clé dans le cache.
- flushAll() — vide tout le cache.
- getStats() — retourne des statistiques (nombre de clés, succès, échecs).
Exemple de code en TypeScript
import NodeCache from 'node-cache';
// Créons une instance de cache avec un TTL par défaut de 60 secondes
const myCache = new NodeCache({ stdTTL: 60 });
// Valeur typée
interface User {
id: number;
name: string;
}
// Enregistrons les données
const user: User = { id: 1, name: 'Alice' };
myCache.set('user_1', user);
// Récupérons les données
const cachedUser = myCache.get<User>('user_1');
if (cachedUser) {
console.log(cachedUser.name); // Alice
} else {
console.log('Le cache est vide');
}
// Vérification de présence
console.log(myCache.has('user_1')); // true
// Suppression
myCache.del('user_1');
// Vidage complet du cache
myCache.flushAll();Quand utiliser node-cache
- Données fréquemment demandées : par exemple, la liste des pays, les taux de change, les configurations.
- Résultats de calculs lourds : mise en cache du résultat d'une opération coûteuse pendant quelques secondes.
- Passerelles API : mise en cache des réponses d'API externes pour réduire les latences et les limites.
- Sessions : stockage temporaire des données de session (si la persistance n'est pas requise).
Évitez node-cache si vous avez besoin d'un cache distribué entre plusieurs serveurs — dans ce cas, il est préférable d'utiliser Redis. Il ne convient pas non plus pour de grands volumes de données (plus de 1-2 Go), car il est stocké en mémoire vive.
Node-cache est un excellent choix pour les scénarios de mise en cache simples en TypeScript, où la vitesse et une configuration minimale sont importantes.
Aussi dans la bibliothèque
Mise en cache en TypeScript : Redis et autres solutions pour Node.js
Bibliothèque standard JavaScript (Node.js) : aperçu complet
SceneKit Swift : guide complet avec exemples 3D
Mise en cache en Rust : la bibliothèque `cached`