Client Redis pour TypeScript : ioredis et redis
Redis est un magasin de données en mémoire hautes performances, souvent utilisé pour la mise en cache, la gestion des sessions, les files d'attente de messages et le temps réel. Lors du développement en TypeScript (notamment dans l'environnement Node.js), vous aurez besoin d'un client fiable pour interagir avec Redis. Aujourd'hui, les deux principaux candidats sont les bibliothèques redis (officielle de Redis) et ioredis (alternative tierce populaire). Toutes deux prennent en charge TypeScript nativement, mais présentent des différences au niveau de l'API, des performances et des fonctionnalités supplémentaires.
1. Bibliothèque ioredis
ioredis est un client Redis complet pour Node.js, écrit en TypeScript. Il est considéré comme le standard de facto dans la communauté grâce à sa fiabilité, sa prise en charge des clusters, de Sentinel et ses capacités intégrées pour travailler avec les flux de données.
Installation
npm install ioredis# ouyarn add ioredisConnexion et exemple de base
import Redis from 'ioredis';
const redis = new Redis({ host: 'localhost', port: 6379, // password: 'your-password', // si nécessaire retryStrategy: (times) => { // stratégie de reconnexion return Math.min(times * 50, 2000); }});
redis.on('connect', () => { console.log('Connecté à Redis');});
redis.on('error', (err) => { console.error('Erreur Redis :', err);});
// Utilisation d'async/awaitasync function demo() { await redis.set('user:1', JSON.stringify({ name: 'Ivan', age: 30 })); const user = await redis.get('user:1'); console.log('Données récupérées :', JSON.parse(user));}
demo();Caractéristiques d'ioredis
- Prise en charge complète de TypeScript — toutes les méthodes sont strictement typées, ce qui permet à l'IDE de suggérer les types des arguments et des résultats.
- Clusters et Sentinel — prise en charge intégrée du mode cluster Redis et basculement automatique en cas de panne.
- Traitement des flux — interface pratique pour Redis Streams (XADD, XREAD, XGROUP).
- Canaux (Pub/Sub) — abonnement simple aux canaux et réception de messages en temps réel.
- Pipeline et transactions — regroupement de commandes pour améliorer les performances.
- Reconnexion automatique — stratégie de tentatives intégrée.
Exemple avec 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('Résultats du pipeline :', results); // [ [ null, 'OK' ], [ null, 'OK' ], [ null, 'value1' ], [ null, 'value2' ] ]}
pipelineDemo();2. Bibliothèque officielle redis
Depuis la version 4.x, le client officiel redis a été entièrement réécrit en TypeScript. Il propose une API moderne basée sur les Promesses, une architecture modulaire et une intégration profonde avec TypeScript.
Installation
npm install redis# ouyarn add redisConnexion et exemple
import { createClient } from 'redis';
const client = createClient({ url: 'redis://localhost:6379' // ou avec mot de passe : 'redis://user:password@localhost:6379'});
client.on('error', (err) => console.error('Erreur du client Redis', err));
async function connectAndUse() { await client.connect(); console.log('Connecté !');
await client.set('session:123', 'active'); const status = await client.get('session:123'); console.log('Statut de la session :', status); // 'active'
await client.disconnect();}
connectAndUse(); Aussi dans la bibliothèque
Planificateur de tâches en TypeScript : guide détaillé de la bibliothèque node-schedule
Apprentissage automatique en Kotlin : aperçu des bibliothèques pour la Data Science et le ML
Travailler avec S3 et les stockages cloud en C# (.NET) : AWS SDK et MinIO
Surveillance des applications Rust : la bibliothèque `tracing`