Redis-Client für TypeScript: ioredis und redis

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 TypeScript: ioredis und redis



Redis ist ein Hochleistungs-In-Memory-Datenspeicher, der häufig für Caching, Sitzungsverwaltung, Nachrichtenwarteschlangen und Echtzeitanwendungen verwendet wird. Bei der Entwicklung mit TypeScript (insbesondere in der Node.js-Umgebung) benötigen Sie einen zuverlässigen Client für die Interaktion mit Redis. Derzeit sind die beiden wichtigsten Kandidaten die Bibliotheken redis (offiziell von Redis) und ioredis (eine beliebte Drittanbieter-Alternative). Beide unterstützen TypeScript von Haus aus, unterscheiden sich jedoch in API, Leistung und zusätzlichen Funktionen.



1. Die Bibliothek ioredis



ioredis ist ein voll funktionsfähiger Redis-Client für Node.js, der in TypeScript geschrieben ist. Er gilt aufgrund seiner Zuverlässigkeit, Unterstützung für Cluster, Sentinel und integrierter Funktionen für die Arbeit mit Datenströmen als De-facto-Standard in der Community.



Installation

npm install ioredis# oderyarn add ioredis


Verbindung und einfaches Beispiel

import Redis from 'ioredis';

const redis = new Redis({ host: 'localhost', port: 6379, // password: 'your-password', // falls erforderlich retryStrategy: (times) => { // Strategie für erneute Verbindung return Math.min(times * 50, 2000); }});

redis.on('connect', () => { console.log('Mit Redis verbunden');});

redis.on('error', (err) => { console.error('Redis-Fehler:', err);});

// Verwendung von async/awaitasync function demo() { await redis.set('user:1', JSON.stringify({ name: 'Ivan', age: 30 })); const user = await redis.get('user:1'); console.log('Erhaltene Daten:', JSON.parse(user));}

demo();


Besonderheiten von ioredis

  • Vollständige TypeScript-Unterstützung – alle Methoden haben eine strenge Typisierung, sodass die IDE die Typen von Argumenten und Ergebnissen vorschlagen kann.
  • Cluster und Sentinel – integrierte Unterstützung für den Redis-Clustermodus und automatisches Failover.
  • Stream-Verarbeitung – praktische Schnittstelle für Redis Streams (XADD, XREAD, XGROUP).
  • Kanäle (Pub/Sub) – einfaches Abonnieren von Kanälen und Empfangen von Nachrichten in Echtzeit.
  • Pipeline und Transaktionen – Bündelung von Befehlen zur Leistungssteigerung.
  • Automatische Wiederverbindung – integrierte Strategie für erneute Verbindungsversuche.


Beispiel mit Pipeline

import Redis from 'ioredis';

const redis = new Redis();

async function pipelineDemo() { const pipeline = redis.pipeline(); pipeline.set('key1', 'value1'); pipeline.set('key2', 'value2'); pipeline.get('key1'); pipeline.get('key2');

const results = await pipeline.exec(); console.log('Pipeline-Ergebnisse:', results); // [ [ null, 'OK' ], [ null, 'OK' ], [ null, 'value1' ], [ null, 'value2' ] ]}

pipelineDemo();


2. Die offizielle Bibliothek redis



Ab Version 4.x wurde der offizielle Client redis vollständig in TypeScript neu geschrieben. Er bietet eine moderne Promise-basierte API, eine modulare Architektur und eine tiefe Integration mit TypeScript.



Installation

npm install redis# oderyarn add redis


Verbindung und Beispiel

import { createClient } from 'redis';

const client = createClient({ url: 'redis://localhost:6379' // oder mit Passwort: 'redis://user:password@localhost:6379'});

client.on('error', (err) => console.error('Redis-Client-Fehler', err));

async function connectAndUse() { await client.connect(); console.log('Verbunden!');

await client.set('session:123', 'active'); const status = await client.get('session:123'); console.log('Sitzungsstatus:', status); // 'active'

await client.disconnect();}

connectAndUse();

Empfehlungen