Cliente Redis para TypeScript: ioredis e redis

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 TypeScript: ioredis e redis



Redis é um armazenamento de dados em memória de alto desempenho, frequentemente usado para cache, gerenciamento de sessões, filas de mensagens e tempo real. Ao desenvolver em TypeScript (especialmente no ambiente Node.js), você precisará de um cliente confiável para interagir com o Redis. Atualmente, os dois principais candidatos são as bibliotecas redis (oficial da Redis) e ioredis (uma alternativa popular de terceiros). Ambas suportam TypeScript nativamente, mas possuem diferenças na API, desempenho e funcionalidades adicionais.



1. Biblioteca ioredis



ioredis é um cliente Redis completo para Node.js, escrito em TypeScript. É considerado o padrão de facto na comunidade devido à sua confiabilidade, suporte a clusters, Sentinel e recursos integrados para trabalhar com fluxos de dados.



Instalação

npm install ioredis# ouyarn add ioredis


Conexão e exemplo básico

import Redis from 'ioredis';

const redis = new Redis({ host: 'localhost', port: 6379, // password: 'sua-senha', // se necessário retryStrategy: (times) => { // estratégia de reconexão return Math.min(times * 50, 2000); }});

redis.on('connect', () => { console.log('Conectado ao Redis');});

redis.on('error', (err) => { console.error('Erro no Redis:', err);});

// Usando async/awaitasync function demo() { await redis.set('user:1', JSON.stringify({ name: 'João', age: 30 })); const user = await redis.get('user:1'); console.log('Dados obtidos:', JSON.parse(user));}

demo();


Características do ioredis

  • Suporte total a TypeScript — todos os métodos possuem tipagem estrita, permitindo que a IDE sugira tipos de argumentos e resultados.
  • Clusters e Sentinel — suporte integrado para modo cluster do Redis e failover automático.
  • Processamento de streams — interface conveniente para Redis Streams (XADD, XREAD, XGROUP).
  • Canais (Pub/Sub) — inscrição simples em canais e recebimento de mensagens em tempo real.
  • Pipeline e transações — agrupamento de comandos para melhorar o desempenho.
  • Reconexão automática — estratégia de repetição integrada.


Exemplo com 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('Resultados do pipeline:', results); // [ [ null, 'OK' ], [ null, 'OK' ], [ null, 'value1' ], [ null, 'value2' ] ]}

pipelineDemo();


2. Biblioteca oficial redis



A partir da versão 4.x, o cliente oficial redis foi completamente reescrito em TypeScript. Ele oferece uma API moderna baseada em Promise, arquitetura modular e integração profunda com TypeScript.



Instalação

npm install redis# ouyarn add redis


Conexão e exemplo

import { createClient } from 'redis';

const client = createClient({ url: 'redis://localhost:6379' // ou com senha: 'redis://usuario:senha@localhost:6379'});

client.on('error', (err) => console.error('Erro no Cliente Redis', err));

async function connectAndUse() { await client.connect(); console.log('Conectado!');

await client.set('session:123', 'active'); const status = await client.get('session:123'); console.log('Status da sessão:', status); // 'active'

await client.disconnect();}

connectAndUse();

Recommendations