Redis (ioredis) für JavaScript (Node.js): Komplettguide mit Beispielen

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

Redis (ioredis) für JavaScript (Node.js): Das vollständige Handbuch

Redis (Remote Dictionary Server) ist ein leistungsstarkes In-Memory-Datenspeicher-System vom Typ Schlüssel-Wert, das häufig als Datenbank, Cache und Message Broker eingesetzt wird. Für die Arbeit mit Redis aus Node.js heraus gibt es mehrere Clients, aber ioredis gehört zu den leistungsfähigsten, performantesten und beliebtesten. Diese Bibliothek bietet einen vollständigen Funktionsumfang für die Interaktion mit Redis, inklusive Unterstützung für Cluster, Pub/Sub, Pipelining, Transaktionen und Lua-Skripte.

Warum braucht man diese Bibliothek? In der modernen Webentwicklung mit Node.js ist schneller Datenzugriff essenziell. Redis arbeitet im Arbeitsspeicher und bietet Lese-/Schreibgeschwindigkeiten, die mit traditionellen relationalen Datenbanken nicht erreichbar sind. ioredis ermöglicht es Entwicklern, diese Power einfach in ihre Anwendungen zu integrieren: Caching von aufwändigen Datenbankabfragen, Benutzersitzungen verwalten, Aufgabenwarteschlangen, Bewertungssysteme und vieles mehr. Die Bibliothek ist auf die asynchrone Natur von Node.js ausgelegt und unterstützt vollständig Promises und async/await, was den Code sauber und vorhersagbar macht.

Der entscheidende Vorteil von ioredis gegenüber anderen Clients (wie dem veralteten node_redis) ist die integrierte Unterstützung für Redis-Cluster und Sentinel sowie die automatische Wiederverbindung. Die Bibliothek wird von der Community aktiv gepflegt, hat eine ausführliche Dokumentation und wird von tausenden Unternehmen weltweit in der Produktion eingesetzt. Sie eignet sich sowohl für einfache Skripte als auch für hochbelastbare verteilte Systeme.

Installation

Die Installation der ioredis-Bibliothek erfolgt über den Paketmanager npm (Node Package Manager). Stellen Sie sicher, dass Node.js (Version 12 oder höher) und npm installiert sind.

npm install ioredis

Wenn Sie yarn verwenden, lautet der Befehl:

yarn add ioredis

Nach der Installation ist die Bibliothek für den Import in Ihr Projekt verfügbar. Für die Arbeit wird außerdem ein laufender Redis-Server benötigt. Falls Sie keinen haben, können Sie ihn lokal installieren oder Docker verwenden:

docker run -d --name redis-stack -p 6379:6379 redis/redis-stack-server:latest

Schnellstart

Erstellen Sie eine Datei app.js und schreiben Sie den folgenden minimalen Code, der eine Verbindung zu Redis herstellt, einen Wert speichert und wieder ausliest.

// ioredis-Bibliothek importieren
const Redis = require('ioredis');

// Neuen Client erstellen. Verbindet standardmäßig zu localhost:6379
const redis = new Redis();

// Asynchrone Funktion zur Demonstration
async function quickStart() {
  try {
    // Schlüssel 'name' mit Wert 'PythonLib User' setzen
    await redis.set('name', 'PythonLib User');
    console.log('Schlüssel "name" wurde gesetzt.');

    // Wert des Schlüssels 'name' abrufen
    const result = await redis.get('name');
    console.log(`Wert des Schlüssels "name": ${result}`);

    // Prüfen, ob der Schlüssel existiert
    const exists = await redis.exists('name');
    console.log(`Schlüssel "name" existiert: ${exists === 1}`);

    // Verbindung schließen
    redis.quit();
  } catch (error) {
    console.error('Fehler:', error);
    redis.quit();
  }
}

quickStart();

Starten Sie das Skript mit: node app.js. In der Konsole sollten Meldungen über das erfolgreiche Setzen und Auslesen des Schlüssels erscheinen. Dieses einfache Beispiel zeigt, wie unkompliziert der Einstieg mit ioredis ist.

Wichtige Methoden und Klassen

ioredis bietet Dutzende von Methoden, die den Redis-Befehlen entsprechen. Nachfolgend werden die 8 am häufigsten verwendeten Methoden mit detaillierten Beschreibungen und Beispielen vorgestellt.

1. set(key, value, ...args)

Signatur: redis.set(key: string, value: string | number | Buff

Empfehlungen