Cache com Redis: respostas rápidas sem servir dados velhos
A mesma consulta pesada roda mil vezes por minuto e devolve sempre o mesmo resultado. Veja como usar cache com Redis — e como não servir dados velhos.
Por Equipe We Codex3 min de leitura
Algumas consultas são caras e mudam pouco: catálogo de produtos, configurações, rankings, relatórios agregados. Executá-las a cada requisição desperdiça banco e tempo de resposta. Um cache em memória, como o Redis, resolve.
O padrão mais comum
- 1.A requisição chega.
- 2.O sistema procura o resultado no cache.
- 3.Se encontra, devolve na hora.
- 4.Se não, consulta o banco, guarda no cache com prazo de validade e devolve.
O problema difícil: invalidar
"Há duas coisas difíceis em computação: invalidar cache e dar nomes." Servir preço antigo ou estoque errado é pior do que ser lento.
- Prazo de validade curto para dados que mudam com frequência.
- Invalidação ativa: quando o produto é alterado, o cache dele é removido.
- Chaves bem pensadas:
produto:123,catalogo:categoria:7:pagina:2.
O que não colocar em cache
Dados pessoais sensíveis sem cuidado, saldo, informações que mudam a cada segundo e resultados que dependem de permissões, a menos que a chave inclua o usuário.
Cuidado com o "efeito manada"
Quando um item muito acessado expira, centenas de requisições vão ao banco ao mesmo tempo. Técnicas de bloqueio ou renovação antecipada evitam o pico.
Redis faz mais que cache
Contadores de rate limit distribuído (Rate limit distribuído com Redis: quando um servidor não basta), filas de tarefas (Filas e jobs em background: tirando tarefas pesadas da requisição) e sessões.
E antes de cachear, vale verificar se a consulta não está lenta por falta de índice (Índices no banco de dados: a otimização mais barata que você ainda não fez).
A We Codex otimiza APIs em sistemas web e Performance WPO. Fale com a gente.
- Redis
- Cache
- Performance
- Backend
Resolver de vez, com quem faz isso todo dia
Precisa de uma API ou integração que não caia quando o negócio crescer?
Este artigo mostra o caminho. A implementação sob medida — o detalhe que muda o resultado no seu caso — é o trabalho da We Codex, empresa de engenharia do grupo Wocom.
Continue lendo
Tudo sobre Backend & APIs- Ler artigo
Backend & APIs3 min
Índices no banco de dados: a otimização mais barata que você ainda não fez
Uma consulta que leva 3 segundos pode levar 3 milissegundos com o índice certo. Veja como saber onde faltam índices — e por que índice demais também atrapalha.
- Ler artigo
Backend & APIs3 min
Filas e jobs em background: tirando tarefas pesadas da requisição
O usuário clica em "gerar relatório" e espera 40 segundos com a tela travada. Veja como tirar tarefas pesadas da requisição com filas e jobs.
- Ler artigo
Web & Performance3 min
Cache HTTP e CDN: o site rápido que você já paga e não usa
Seu site baixa o mesmo logo, as mesmas fontes e o mesmo JavaScript a cada visita. Cache HTTP e CDN resolvem — e você provavelmente já paga por eles.