O que é um cache e por que ele pode acelerar tanto um aplicativo?
Publicado em 2026-10-20 por frfrand
Qué es una caché, cómo funcionan hits, misses, TTL e invalidación y cuándo ayuda de verdad a una web.

Uma cache é um lugar onde guardamos temporariamente resultados que provavelmente precisaremos novamente. Pode acelerar um site porque evita repetir consultas, cálculos e downloads cada vez que alguém solicita a mesma informação.
Não é magia. Se o seu aplicativo demora dois segundos para calcular uma lista de produtos e cinquenta pessoas pedem exatamente a mesma lista, talvez não faça sentido realizar o mesmo trabalho cinquenta vezes.
O exemplo da cafeteria
Imagine uma cafeteria onde cada cliente pede o cardápio. O garçom poderia descer ao depósito, buscar o layout original e imprimir uma cópia nova para cada mesa. Mas o razoável é ter vários cardápios prontos.
Uma cache faz algo parecido. Conserva uma cópia de certas informações para responder mais rapidamente a solicitações futuras.
O problema começa quando o menu muda: se você guardar cardápios antigos, pode mostrar preços que já não estão corretos. Essa é a parte menos divertida das caches: invalidá-las bem.
Hit, miss e TTL: três palavras que você vai encontrar
Um cache hit ocorre quando a informação solicitada está em cache e ainda pode ser usada. Um cache miss acontece quando não está disponível ou não é mais válida, então é necessário consultar a fonte original.
O TTL, ou tempo de vida, estabelece por quanto tempo uma entrada pode ser considerada válida de acordo com uma política determinada.
Por exemplo, você poderia guardar durante cinco minutos o resultado de uma lista pública de categorias. Se alguém consultá-la novamente antes de expirar, o aplicativo pode responder usando a cópia. Mas o saldo de uma conta bancária exige um tratamento muito mais cuidadoso.
O TTL é uma ferramenta, não uma permissão para exibir dados incorretos.
Onde podem haver caches?
No navegador: imagens, fontes e certos arquivos de um site podem ser reutilizados sem serem baixados completamente a cada vez.
Em uma CDN: cópias de recursos podem ser entregues a partir de nós distribuídos geograficamente, perto dos visitantes.
No aplicativo: resultados de cálculos ou consultas podem ser armazenados em memória local ou em um serviço compartilhado como Redis.
No banco de dados: diferentes motores mantêm estruturas e páginas em memória para reduzir acessos ao disco.
Essas camadas não funcionam todas da mesma forma. Também não convém ativá-las sem saber qual problema você está resolvendo.
Como implementar um cache em uma API?
Imagine que um endpoint retorna os produtos em destaque. Primeiro você verifica se existe um resultado válido com uma chave como produtos:destaques. Se encontrar, você o retorna. Caso contrário, consulta o banco de dados, prepara a resposta e guarda o resultado por um tempo limitado.
O processo parece simples até que duzentas solicitações chegam exatamente quando a mesma chave expira: todas podem tentar recalcular ao mesmo tempo. Esse fenômeno pode sobrecarregar a origem. Para casos exigentes, existem estratégias de bloqueio, renovação antecipada ou expirações escalonadas.
Também não deve utilizar a mesma chave para respostas que dependem das permissões de cada pessoa. Um cache ruim pode exibir dados privados a quem não corresponde.
O que significa invalidar o cache?
Significa marcar ou excluir cópias para que as próximas solicitações obtenham dados novos.
Você pode fazer isso por tempo, após um evento específico ou por meio de uma versão diferente da chave. Por exemplo, ao atualizar o preço de um produto, talvez seja necessário invalidar o cache do catálogo.
Um dos bugs mais irritantes é aquele em que o administrador vê o preço novo, mas os visitantes continuam vendo o anterior. Muitas vezes não falha o banco de dados: alguém esqueceu como as cópias são atualizadas.
Um cache sempre melhora o desempenho?
Não. Se uma consulta já leva um milissegundo, salvar e recuperar uma cópia em outro servidor pode adicionar complexidade sem um ganho real. Também consome memória e obriga a resolver consistência, permissões e falhas do serviço de cache.
Primeiro meça: qual operação demora?, quantas vezes se repite?, por quanto tempo a informação pode envelhecer?, o que acontece se o cache se perder? Somente depois escolha a estratégia.
Onde entra o ArduMaker?
O ArduMaker permite administrar aplicações e serviços como Redis em ambientes VPS. Uma aplicação implantada lá pode usar o Redis para armazenar resultados temporais, desde que as chaves, expirações e permissões estejam bem projetadas. O Redis também é usado para outros fins, então não confunda o Redis com o conceito geral de cache.
Para lembrar: um cache troca trabalho repetido por armazenamento temporário. Funciona muito bem quando você sabe quais informações podem ser reutilizadas e quando elas precisam deixar de ser válidas.
Fontes: HTTP Caching na MDN · Documentação do Redis · Artigo sobre Redis no ArduMaker.
