Client Redis pour Node.js : ioredis — guide complet

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

\n\n

Redis est un magasin de données clé-valeur hautes performances, souvent utilisé pour la mise en cache, la gestion des sessions, les files d'attente de messages et les systèmes Pub/Sub. Pour travailler avec Redis depuis Node.js, il existe plusieurs bibliothèques, mais l'une des plus puissantes et populaires est ioredis. Cette bibliothèque est conçue pour les applications modernes nécessitant des performances élevées, la prise en charge du clustering, des transactions et du traitement de flux de données.

\n\n

Qu'est-ce que ioredis ?

\n

ioredis est un client Redis complet pour Node.js, écrit en JavaScript. Il prend en charge toutes les fonctionnalités de Redis, y compris le clustering, les modes Sentinel, le pipelining, les transactions (MULTI/EXEC), les scripts Lua, Pub/Sub, ainsi que le travail avec des structures de type MapReduce. La bibliothèque est activement développée et utilisée en production par de nombreuses entreprises.

\n\n

Installation de ioredis

\n

L'installation se fait via npm :

\n
npm install ioredis
\n

Après l'installation, vous pouvez vous connecter à un serveur Redis :

\n
const Redis = require('ioredis');\nconst redis = new Redis(); // par défaut localhost:6379
\n\n

Fonctionnalités principales de ioredis

\n
    \n
  • Simplicité d'utilisation — API intuitive, similaire aux commandes Redis.
  • \n
  • Prise en charge de Promise et async/await — toutes les opérations asynchrones retournent des promesses.
  • \n
  • Clustering — répartition automatique des requêtes entre les nœuds du cluster.
  • \n
  • Sentinel — basculement automatique vers un serveur de secours en cas de panne.
  • \n
  • Pipelining — envoi de plusieurs commandes en une seule requête pour améliorer les performances.
  • \n
  • Pub/Sub — abonnement aux canaux et échange de messages en temps réel.
  • \n
  • Prise en charge des scripts Lua — exécution d'opérations atomiques côté serveur.
  • \n
  • Surveillance et événements — suivi de l'état de la connexion et des erreurs.
  • \n
\n\n

Exemples d'utilisation de ioredis

\n\n

Opérations de base avec les clés

\n

Exemple de définition et d'obtention d'une valeur :

\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

Travail avec les hachages

\n

Les hachages permettent de stocker plusieurs champs sous une même clé :

\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

Le pipelining accélère considérablement l'exécution de multiples commandes :

\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); // tableau des résultats\n}\npipelineExample();
\n\n

Pub/Sub (Éditeur-Abonné)

\n

Exemple d'abonnement à un canal et d'envoi d'un message :

\n
const subscriber = new Redis();\nconst publisher = new Redis();\n\nsubscriber.subscribe('news', (err, count) => {\n    console.log(`Abonné à ${count} canal(aux)`);\n});\n\nsubscriber.on('message', (channel, message) => {\n    console.log(`Message reçu du canal ${channel} : ${message}`);\n});\n\n// Publication d'un message\nasync function publishMessage() {\n    await publisher.publish('news', 'Bonjour le monde !');\n}\npublishMessage();
\n\n

Travail avec un cluster Redis

\n

Pour se connecter à un cluster, utilisez Redis.Cluster :

\n
const Redis =                    

Recommendations