Cache é uma decisão de consistência

Adicionar Redis não resolve automaticamente um gargalo. Primeiro defina quanto tempo o dado pode ficar desatualizado e qual será a fonte de verdade.

const key = `article:list:v2:${locale}`;
const cached = await redis.get(key);

if (cached) return cached;

const articles = await repository.findPublished();
await redis.set(key, articles, { ex: 300 });
return articles;

Estratégia operacional

Use nomes de chave versionados, TTL explícito e métricas de acerto. Para dados críticos, prefira invalidação orientada a eventos e trate a ausência do cache como o caminho normal.