Cliente Redis para Node.js: ioredis — guia completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Cliente Redis para JavaScript (Node.js) — ioredis

\n\n

Redis é um armazenamento de dados do tipo chave-valor de alto desempenho, frequentemente usado para cache, gerenciamento de sessões, filas de mensagens e sistemas Pub/Sub. Para trabalhar com Redis a partir do Node.js, existem várias bibliotecas, mas uma das mais poderosas e populares é o ioredis. Esta biblioteca é projetada para aplicações modernas que exigem alta performance, suporte a clusterização, transações e processamento de fluxo de dados.

\n\n

O que é ioredis?

\n

ioredis é um cliente Redis completo para Node.js, escrito em JavaScript. Ele suporta todos os recursos do Redis, incluindo clusterização, modos Sentinel, pipelining, transações (MULTI/EXEC), scripts Lua, Pub/Sub, bem como trabalho com estruturas semelhantes ao MapReduce. A biblioteca é ativamente desenvolvida e usada em produção por muitas empresas.

\n\n

Instalação do ioredis

\n

A instalação é feita via npm:

\n
npm install ioredis
\n

Após a instalação, você pode conectar-se ao servidor Redis:

\n
const Redis = require('ioredis');\nconst redis = new Redis(); // padrão localhost:6379
\n\n

Principais recursos do ioredis

\n
    \n
  • Facilidade de uso — API intuitiva, semelhante aos comandos do Redis.
  • \n
  • Suporte a Promise e async/await — todas as operações assíncronas retornam promessas.
  • \n
  • Clusterização — distribuição automática de requisições entre os nós do cluster.
  • \n
  • Sentinel — comutação automática para o servidor de backup em caso de falha.
  • \n
  • Pipelining — envio de vários comandos em uma única requisição para melhorar o desempenho.
  • \n
  • Pub/Sub — inscrição em canais e troca de mensagens em tempo real.
  • \n
  • Suporte a scripts Lua — execução de operações atômicas no lado do servidor.
  • \n
  • Monitoramento e eventos — rastreamento do estado da conexão e erros.
  • \n
\n\n

Exemplos de uso do ioredis

\n\n

Trabalho básico com chaves

\n

Exemplo de definição e obtenção de 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

Trabalho com hashes

\n

Hashes permitem armazenar vários campos sob uma única chave:

\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

O pipelining acelera significativamente a execução de múltiplos 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-Assinante)

\n

Exemplo de inscrição em um canal e envio de mensagem:

\n
const subscriber = new Redis();\nconst publisher = new Redis();\n\nsubscriber.subscribe('news', (err, count) => {\n    console.log(`Inscrito em ${count} canal(ais)`);\n});\n\nsubscriber.on('message', (channel, message) => {\n    console.log(`Mensagem recebida do canal ${channel}: ${message}`);\n});\n\n// Publicação de mensagem\nasync function publishMessage() {\n    await publisher.publish('news', 'Olá, mundo!');\n}\npublishMessage();
\n\n

Trabalho com cluster Redis

\n

Para conectar-se a um cluster, use Redis.Cluster:

\n
const Redis =                    

Recommendations