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 ioredisVerbindung 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 redisVerbindung 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(); Auch in der Bibliothek
Arbeiten mit Bildern in Rust: Die Bibliothek image und mehr
Drogon C++ Framework: Vollständiges Tutorial mit Beispielen
Kryptographie in Kotlin: Verschlüsselung und Hashing
Konfiguration von Kotlin-Anwendungen: Bibliotheken und Werkzeuge zur Verwaltung von Einstellungen