Client Redis pour TypeScript : ioredis et redis

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

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 ioredis


Connexion 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 redis


Connexion 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();

Recommendations