Cliente Redis para Node.js: ioredis — guía completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Cliente Redis para JavaScript (Node.js) — ioredis

\n\n

Redis es un almacén de datos de tipo clave-valor de alto rendimiento, que se utiliza a menudo para almacenamiento en caché, gestión de sesiones, colas de mensajes y sistemas Pub/Sub. Para trabajar con Redis desde Node.js existen varias bibliotecas, pero una de las más potentes y populares es ioredis. Esta biblioteca está diseñada para aplicaciones modernas que requieren alto rendimiento, soporte para agrupación en clústeres, transacciones y procesamiento de datos en flujo.

\n\n

¿Qué es ioredis?

\n

ioredis es un cliente Redis completo para Node.js, escrito en JavaScript. Soporta todas las funcionalidades de Redis, incluyendo agrupación en clústeres, modos Sentinel, canalización (pipelining), transacciones (MULTI/EXEC), scripts Lua, Pub/Sub, así como trabajo con estructuras similares a MapReduce. La biblioteca se desarrolla activamente y es utilizada en producción por muchas empresas.

\n\n

Instalación de ioredis

\n

La instalación se realiza a través de npm:

\n
npm install ioredis
\n

Después de la instalación, puede conectarse al servidor Redis:

\n
const Redis = require('ioredis');\nconst redis = new Redis(); // por defecto localhost:6379
\n\n

Funcionalidades principales de ioredis

\n
    \n
  • Facilidad de uso — API intuitiva, similar a los comandos de Redis.
  • \n
  • Soporte para Promise y async/await — todas las operaciones asíncronas devuelven promesas.
  • \n
  • Agrupación en clústeres — distribución automática de solicitudes entre los nodos del clúster.
  • \n
  • Sentinel — conmutación automática al servidor de respaldo en caso de fallo.
  • \n
  • Canalización (Pipelining) — envío de múltiples comandos en una sola solicitud para mejorar el rendimiento.
  • \n
  • Pub/Sub — suscripción a canales e intercambio de mensajes en tiempo real.
  • \n
  • Soporte para scripts Lua — ejecución de operaciones atómicas en el lado del servidor.
  • \n
  • Monitoreo y eventos — seguimiento del estado de la conexión y errores.
  • \n
\n\n

Ejemplos de uso de ioredis

\n\n

Trabajo básico con claves

\n

Ejemplo de establecimiento y obtención de un valor:

\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

Trabajo con hashes

\n

Los hashes permiten almacenar varios campos bajo una misma clave:

\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

Canalización (Pipelining)

\n

La canalización acelera significativamente la ejecución de múltiples comandos:

\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); // array de resultados\n}\npipelineExample();
\n\n

Pub/Sub (Publicador-Suscriptor)

\n

Ejemplo de suscripción a un canal y envío de un mensaje:

\n
const subscriber = new Redis();\nconst publisher = new Redis();\n\nsubscriber.subscribe('news', (err, count) => {\n    console.log(`Suscrito a ${count} canal(es)`);\n});\n\nsubscriber.on('message', (channel, message) => {\n    console.log(`Mensaje recibido del canal ${channel}: ${message}`);\n});\n\n// Publicación de un mensaje\nasync function publishMessage() {\n    await publisher.publish('news', '¡Hola, mundo!');\n}\npublishMessage();
\n\n

Trabajo con clúster Redis

\n

Para conectarse a un clúster, use Redis.Cluster:

\n
const Redis =                    

Recommendations