Executando verificação de segurança...
2

Como cachear respostas JSON no Node.js com Redis sem alterar (muito) sua lógica atual.

🧠 Como cachear respostas JSON no Node.js (neste exemplo) com Redis sem alterar sua lógica atual?

Se você trabalha com Node.js e sente que seu banco de dados (MySQL, PostgreSQL, etc.) está ficando sobrecarregado com requisições repetitivas, esse post é pra você.

O Redis é muito bom, leve e eficiente e serve para muitas situações, aqui nessa postagem, vamos abordar somente o cacheamento.

🚨 O problema

Você tem controllers, models, lógica toda montada, mas:

Requisições repetidas batem direto no banco.

A performance começa a cair.

Refatorar tudo agora? Nem pensar.

✅ A solução: Cache com Redis (sem mudar sua lógica atual)
A ideia aqui é interceptar suas funções de consulta e cachear as respostas JSON no Redis, de forma automática.

📦 Instale as dependências

npm install redis

⚙️ Configure o Redis

`const redis = require('redis');
const client = redis.createClient();

client.connect();

async function getCache(key) {
const data = await client.get(key);
return data ? JSON.parse(data) : null;
}

async function setCache(key, value, ttl = 86400) {
await client.setEx(key, ttl, JSON.stringify(value));
}

async function clearCache(key) {
await client.del(key);
}

module.exports = { getCache, setCache, clearCache };`

🧩 Use nos seus controllers (sem mudar os models)

`// controllers/userController.js
const { getCache, setCache } = require('../lib/cache');
const User = require('../models/User');

async function listUsers(req, res) {
const cacheKey = 'users:list';

const cached = await getCache(cacheKey);
if (cached) return res.json(cached);

const users = await User.findAll(); // sua lógica normal
await setCache(cacheKey, users);

res.json(users);
}`

♻️ Resetar o cache (opcional)

const { clearCache } = require('../lib/cache'); await clearCache('users:list');

🚀 Resultado

Você mantém seu código do jeito que está e ganha:

Menos carga no banco

Respostas mais rápidas

Cache com TTL (ex: 24h), em casos de aplicações que os dados mudam pouco, é uma mão na roda pois o cache pode ser compartilhado globalmente; claro, não é mágica, não da pra compartilhar dados muito dinâmicos e muito menos dados sensiveis, de usuario logado, etc, mas, é util para uma infinidade de situações. Seja criativo. Existem muitas outras formas de usar o Redis na sua aplicação.

Possibilidade de limpar o cache quando quiser

Carregando publicação patrocinada...
1

Talvez é interessante um TTL de 1h , há sistemas que nem équestão de não serem atualizados constantemente,mas 24h acho temerário para usar um REDIS;