Redis-Client für Node.js: ioredis – vollständige Anleitung

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-Client für JavaScript (Node.js) — ioredis

\n\n

Redis ist ein leistungsstarker Schlüssel-Wert-Datenspeicher, der häufig für Caching, Sitzungsverwaltung, Nachrichtenwarteschlangen und Pub/Sub-Systeme verwendet wird. Für die Arbeit mit Redis aus Node.js gibt es mehrere Bibliotheken, aber eine der leistungsstärksten und beliebtesten ist ioredis. Diese Bibliothek ist für moderne Anwendungen konzipiert, die hohe Leistung, Unterstützung für Clusterbildung, Transaktionen und Datenstromverarbeitung erfordern.

\n\n

Was ist ioredis?

\n

ioredis ist ein voll funktionsfähiger Redis-Client für Node.js, geschrieben in JavaScript. Er unterstützt alle Redis-Funktionen, einschließlich Clusterbildung, Sentinel-Modi, Pipelining, Transaktionen (MULTI/EXEC), Lua-Skripte, Pub/Sub sowie die Arbeit mit MapReduce-ähnlichen Strukturen. Die Bibliothek wird aktiv weiterentwickelt und von vielen Unternehmen in der Produktion eingesetzt.

\n\n

Installation von ioredis

\n

Die Installation erfolgt über npm:

\n
npm install ioredis
\n

Nach der Installation können Sie eine Verbindung zum Redis-Server herstellen:

\n
const Redis = require('ioredis');\nconst redis = new Redis(); // standardmäßig localhost:6379
\n\n

Hauptfunktionen von ioredis

\n
    \n
  • Einfachheit — intuitive API, ähnlich den Redis-Befehlen.
  • \n
  • Promise- und async/await-Unterstützung — alle asynchronen Operationen geben Promises zurück.
  • \n
  • Clusterbildung — automatische Verteilung von Anfragen auf Cluster-Knoten.
  • \n
  • Sentinel — automatisches Umschalten auf den Backup-Server bei Ausfällen.
  • \n
  • Pipelining — Senden mehrerer Befehle in einer Anfrage zur Leistungssteigerung.
  • \n
  • Pub/Sub — Abonnieren von Kanälen und Echtzeit-Nachrichtenaustausch.
  • \n
  • Unterstützung für Lua-Skripte — Ausführung atomarer Operationen auf der Serverseite.
  • \n
  • Überwachung und Ereignisse — Verfolgung des Verbindungsstatus und von Fehlern.
  • \n
\n\n

Beispiele für die Verwendung von ioredis

\n\n

Grundlegende Arbeit mit Schlüsseln

\n

Beispiel zum Setzen und Abrufen eines Werts:

\n
const Redis = require('ioredis');\nconst redis = new Redis();\n\nasync function basicExample() {\n    await redis.set('user:1', 'Alice');\n    const value = await redis.get('user:1');\n    console.log(value); // Alice\n}\nbasicExample();
\n\n

Arbeit mit Hashes

\n

Hashes ermöglichen das Speichern mehrerer Felder unter einem Schlüssel:

\n
async function hashExample() {\n    await redis.hset('user:2', 'name', 'Bob', 'age', 30);\n    const name = await redis.hget('user:2', 'name');\n    console.log(name); // Bob\n}\nhashExample();
\n\n

Pipelining

\n

Pipelining beschleunigt die Ausführung mehrerer Befehle erheblich:

\n
async function pipelineExample() {\n    const pipeline = redis.pipeline();\n    pipeline.set('key1', 'value1');\n    pipeline.set('key2', 'value2');\n    pipeline.get('key1');\n    const results = await pipeline.exec();\n    console.log(results); // Array der Ergebnisse\n}\npipelineExample();
\n\n

Pub/Sub (Publisher-Subscriber)

\n

Beispiel für das Abonnieren eines Kanals und das Senden einer Nachricht:

\n
const subscriber = new Redis();\nconst publisher = new Redis();\n\nsubscriber.subscribe('news', (err, count) => {\n    console.log(`Abonniert ${count} Kanal/Kanäle`);\n});\n\nsubscriber.on('message', (channel, message) => {\n    console.log(`Nachricht von Kanal ${channel} erhalten: ${message}`);\n});\n\n// Nachricht veröffentlichen\nasync function publishMessage() {\n    await publisher.publish('news', 'Hallo, Welt!');\n}\npublishMessage();
\n\n

Arbeit mit Redis-Cluster

\n

Für die Verbindung zu einem Cluster verwenden Sie Redis.Cluster:

\n
const Redis =                    

Empfehlungen