Arquitetura de software · Escala e desempenho · 6 min de leitura
Cache: estratégias e armadilhas
Guardar resultados caros perto de quem usa: menos latência e menos carga no banco — desde que se resolva quando o dado muda.
Arraste para o lado para ver o diagrama inteiro.
Onde colocar
- Navegador e CDN: cabeçalhos HTTP (
Cache-Control,ETag). - Aplicação: memória local ou um cache distribuído como Redis.
- Banco: o próprio banco já guarda páginas em memória.
Estratégias
- Cache-aside: lê do cache; na falta, busca no banco e grava.
- Write-through: grava no cache e no banco juntos.
- Write-back: grava no cache e persiste depois (rápido, risco de perda).
Armadilhas
- Invalidação: o dado mudou e o cache não. Use TTL e apague a chave ao atualizar.
- Estouro na expiração (thundering herd): muitas requisições recriam a mesma chave ao mesmo tempo — use bloqueio ou expiração com variação.
- Não guarde dados pessoais sem prazo e sem separar por usuário.
Em resumo
- Reduz latência e carga no banco.
- Cache-aside é o padrão mais comum.
- TTL + invalidação ao gravar controlam dados velhos.
- Proteja-se do estouro de recriação simultânea.