Caching in TypeScript: Die Bibliothek node-cache

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist node-cache und wozu wird es benötigt?

Die Bibliothek node-cache ist ein einfaches und schnelles Caching-System für Node.js, geschrieben in TypeScript. Sie ermöglicht es, Daten im Arbeitsspeicher (In-Memory-Cache) zu speichern, was den Zugriff auf häufig angefragte Informationen (z. B. Ergebnisse von Datenbankabfragen, API-Antworten, Berechnungen) erheblich beschleunigt. In TypeScript bietet node-cache eine strenge Typisierung, was den Code vorhersagbarer und sicherer macht.

Caching ist notwendig, um die Serverlast zu reduzieren, die Antwortzeiten zu verkürzen und Ressourcen bei wiederholten Operationen zu sparen. Node-cache ist ideal für kleine und mittlere Projekte, bei denen kein verteiltes Caching (wie Redis) erforderlich ist, aber ein leichtgewichtiger In-Memory-Cache benötigt wird.

Installation

Installieren Sie das Paket über npm oder yarn:

npm install node-cache
# oder
yarn add node-cache

Für TypeScript sind die Typen bereits im Paket enthalten, eine zusätzliche Installation von @types ist nicht erforderlich.

Hauptfunktionen

  • set(key, value, ttl) — speichert einen Wert unter einem Schlüssel mit optionaler Lebensdauer (TTL) in Sekunden.
  • get(key) — ruft den Wert für einen Schlüssel ab. Gibt undefined zurück, wenn der Schlüssel nicht vorhanden oder abgelaufen ist.
  • del(key) — löscht einen oder mehrere Schlüssel.
  • has(key) — prüft, ob ein Schlüssel im Cache vorhanden ist.
  • flushAll() — leert den gesamten Cache.
  • getStats() — gibt Statistiken zurück (Anzahl der Schlüssel, Treffer, Fehltreffer).

Codebeispiel in TypeScript

import NodeCache from 'node-cache';

// Erstellen einer Cache-Instanz mit Standard-TTL von 60 Sekunden
const myCache = new NodeCache({ stdTTL: 60 });

// Typisierter Wert
interface User {
id: number;
name: string;
}

// Daten speichern
const user: User = { id: 1, name: 'Alice' };
myCache.set('user_1', user);

// Daten abrufen
const cachedUser = myCache.get<User>('user_1');
if (cachedUser) {
console.log(cachedUser.name); // Alice
} else {
console.log('Cache ist leer');
}

// Vorhandensein prüfen
console.log(myCache.has('user_1')); // true

// Löschen
myCache.del('user_1');

// Gesamten Cache leeren
myCache.flushAll();

Wann node-cache verwenden

  • Häufig angefragte Daten: z. B. Länderliste, Wechselkurse, Konfigurationen.
  • Ergebnisse aufwändiger Berechnungen: Zwischenspeichern des Ergebnisses einer teuren Operation für einige Sekunden.
  • API-Gateways: Zwischenspeichern von Antworten externer APIs zur Reduzierung von Verzögerungen und Limits.
  • Sitzungen: Temporäre Speicherung von Sitzungsdaten (falls keine Persistenz erforderlich ist).

Vermeiden Sie node-cache, wenn Sie verteiltes Caching zwischen mehreren Servern benötigen – in diesem Fall verwenden Sie besser Redis. Es ist auch nicht für große Datenmengen (mehr als 1-2 GB) geeignet, da es im Arbeitsspeicher gespeichert wird.

Node-cache ist eine ausgezeichnete Wahl für einfache Caching-Szenarien in TypeScript, bei denen Geschwindigkeit und minimale Konfiguration wichtig sind.

Empfehlungen