Guias

O que é cache? Um guia em linguagem simples para criadores de apps

Cache significa manter uma cópia pronta de algo que era lento ou caro de obter, para que a próxima requisição por aquilo possa ser respondida rapidamente a partir dessa cópia. A cópia guardada se chama cache. Seu navegador guarda imagens em cache para que um site carregue mais rápido na sua segunda visita; um servidor guarda em cache o resultado de uma consulta lenta ao banco de dados para não precisar executá-la para cada visitante.

O cache torna os apps mais rápidos e mais baratos de manter. Seu grande compromisso é que uma cópia pode ficar desatualizada.

Por que o cache importa quando você cria com IA

Você vai encontrar cache em apps criados com IA de três formas:

  • "Atualizei o app, mas ainda vejo a versão antiga." Este é o momento mais comum de cache, e geralmente é inofensivo — seu navegador ou uma CDN está mostrando uma cópia guardada.
  • Velocidade. Se uma página está lenta porque recalcula os mesmos números para cada visitante, guardar o resultado em cache pode fazê-la parecer instantânea.
  • Custo. Muitos criadores de apps com IA e hospedagens cobram por processamento, tempo de banco de dados e chamadas a APIs externas. Se mil visitantes disparam a mesma requisição cara, o cache permite pagar por ela uma única vez.

Conhecer o básico permite pedir cache onde ele ajuda e identificá-lo quando ele é o motivo de algo parecer errado.

Uma analogia do dia a dia

Pense na cozinha de um café movimentado.

Toda manhã, o barista poderia preparar cada café com grãos recém-moídos no momento do pedido. Isso é lento. Em vez disso, ele mantém uma jarra de café de filtro pronta na chapa. A maioria dos clientes recebe a xícara em segundos — isso é um cache hit. Quando a jarra acaba, alguém prepara uma nova — um cache miss.

Mas café parado por muito tempo fica ruim, então o café tem uma regra: descartar qualquer jarra com mais de 30 minutos. Essa regra é o tempo de validade do cache. Ninguém manteria a mesma jarra o dia inteiro, e ninguém pré-prepararia o pedido personalizado de alguém com leite de aveia e três açúcares — algumas coisas simplesmente não devem ser guardadas em cache.

Onde os caches ficam

Um único carregamento de página pode passar por vários caches, do mais próximo do usuário ao mais distante:

CacheOnde ficaO que costuma guardarExemplo
Cache do navegadorNo dispositivo do visitanteImagens, folhas de estilo, scripts, fontesSeu logotipo aparece instantaneamente na segunda página
Cache de CDNServidores ao redor do mundo, perto dos visitantesArquivos estáticos e às vezes páginas inteirasUm visitante em Tóquio recebe os arquivos de um servidor próximo, não da sua origem
Cache da aplicaçãoNo servidor ou junto dele, muitas vezes na memória ou no RedisResultados de consultas lentas ou de chamadas a APIs externasCotações de câmbio de hoje, buscadas uma vez por hora
Cache do banco de dadosDentro do bancoDados usados recentemente e planos de consultaLinhas populares permanecem em memória rápida

Uma CDN (content delivery network, ou rede de entrega de conteúdo) é basicamente uma rede mundial de caches para os arquivos do seu site.

Como um cache decide o que manter

Cada cache precisa responder às mesmas perguntas:

  • O que pode ser guardado? Dados públicos e compartilhados (uma imagem de produto, um post de blog) — sim. Dados privados (a página da conta de um usuário, as mensagens dele) — nunca em um cache compartilhado.
  • Por quanto tempo? Isso é o TTL (time to live, ou tempo de vida). Um logotipo pode ficar em cache por um ano; um nível de estoque, por 30 segundos.
  • Como é atualizado? Ou a cópia expira e é buscada de novo, ou o app remove deliberadamente quando os dados mudam — chamado de invalidação.

Em sites, o servidor informa aos navegadores e às CDNs como guardar cada arquivo usando o cabeçalho Cache-Control. Por exemplo, Cache-Control: max-age=3600 significa "você pode reutilizar esta cópia por uma hora".

As ferramentas de build modernas resolvem a parte mais difícil dos arquivos estáticos com o cache busting: sempre que um arquivo muda, ele recebe um novo nome com uma impressão digital, como app.3f9a2c.js. Os navegadores podem guardar o nome antigo por muito tempo, porque a nova versão simplesmente tem outro nome.

Um exemplo prático: um catálogo de produtos

Você tem uma pequena loja online. A página inicial mostra 50 produtos com preços e níveis de estoque vindos do banco de dados, além de uma lista de "em alta" que exige um cálculo lento sobre todos os pedidos.

  1. Imagens e scripts são guardados em cache pelo navegador e pela CDN por bastante tempo. Cada novo build dá novos nomes aos arquivos alterados, então as atualizações continuam aparecendo.
  2. A lista de "em alta" é calculada uma vez a cada 10 minutos e armazenada em um cache da aplicação. Cada visitante nesses 10 minutos recebe o resultado guardado instantaneamente.
  3. Os preços ficam em cache por pouco tempo, e o cache é limpo sempre que você edita um produto, para que os clientes nunca vejam um preço antigo por muito tempo.
  4. O estoque no checkout nunca vai para o cache. Quando alguém clica em "Comprar", o app consulta o banco de dados real, então não consegue vender um item que acabou de esgotar.
  5. As páginas de carrinho e de conta nunca são guardadas em caches compartilhados, porque são pessoais.

O resultado: a página inicial é rápida, o banco de dados trabalha bem menos, e nada que importa para dinheiro ou privacidade fica desatualizado.

Termos-chave

TermoSignificado
Cache hit / missO dado foi encontrado no cache / precisou ser buscado na fonte.
TTL (time to live)Por quanto tempo uma cópia guardada é considerada atual.
Dados desatualizados (stale)Uma cópia guardada que já não está atual.
InvalidaçãoRemover deliberadamente uma cópia guardada porque o original mudou.
Cache bustingTrocar o nome ou a URL de um arquivo quando ele muda, para que os caches busquem a nova versão.
Cache-ControlO cabeçalho HTTP que diz aos navegadores e às CDNs como guardar uma resposta.
Recarregamento forçadoRecarregar uma página pedindo ao navegador que ignore o cache.
RedisUm armazenamento de dados popular na memória, muitas vezes usado como cache da aplicação.

Equívocos comuns

  • "Cache é sempre bom." Guardar a coisa errada em cache causa bugs reais: preços antigos, posts novos que não aparecem ou — o pior caso — a página privada de um usuário mostrada para outro. Use cache com intenção.
  • "Se vejo a versão antiga, minha atualização falhou." Geralmente não falhou. Tente um recarregamento forçado (Ctrl+Shift+R, ou Cmd+Shift+R no Mac) ou uma janela privada antes de presumir que algo está quebrado.
  • "Cache resolve um app lento." Ele esconde a lentidão em requisições repetidas. A primeira requisição continua lenta, e se o problema de fundo é um índice faltando no banco de dados, corrija isso também.
  • "Devo guardar tudo em cache pelo maior tempo possível." Tempos longos de cache servem para arquivos que ganham novos nomes quando mudam. Para páginas HTML e dados, tempos menores são mais seguros.
  • "Limpar meu cache resolve para todo mundo." Isso limpa apenas o seu navegador. Os visitantes e os caches de CDN continuam com as próprias cópias.

O que pedir ao seu criador de apps com IA

  • "Quais partes deste app estão lentas, e quais poderiam ser guardadas em cache com segurança?"
  • "Guarde em cache a [lista de em alta / resultado da API] por [N] minutos, e limpe-o quando os dados de origem mudarem."
  • "Garanta que nenhuma página com dados pessoais ou de conta possa ser guardada em cache por uma CDN ou cache compartilhado."
  • "Defina tempos longos de cache para arquivos estáticos com impressão digital e curtos para HTML."
  • "Guarde em cache as respostas de [API externa] para não chamá-la a cada carregamento de página — e me diga o quão desatualizados esses dados podem ficar."
  • "Vejo uma versão antiga depois de publicar. É o cache do meu navegador, ou algo não foi implantado?"

Cache no Mythex

Depois que você publica uma atualização de um app no Mythex, a documentação observa que os caches de CDN podem demorar um pouco para atualizar, e que um recarregamento forçado da URL pública mostra a nova versão — veja Como publicar. A página de Limites de hospedagem também recomenda guardar em cache os recursos estáticos, já que hospedagem, tempo de banco de dados e largura de banda são pagos com o seu saldo de créditos. Qualquer coisa além disso — guardar em cache resultados de consultas ou respostas de API — é algo que você pede ao agente para construir no seu app.

Leitura relacionada: o que é uma CDN, como deixar seu site mais rápido e o que é limitação de taxa (rate limiting).

Perguntas

O que é cache, em termos simples?

Cache significa guardar uma cópia de algo que era lento ou caro de obter, para que, na próxima vez que for preciso, possa ser entregue rapidamente a partir da cópia guardada. Navegadores, CDNs, servidores e bancos de dados usam caches para deixar os apps mais rápidos e mais baratos de manter.

Por que continuo vendo a versão antiga do meu site depois de atualizá-lo?

Provavelmente seu navegador ou uma CDN está entregando uma cópia guardada dos arquivos antigos. Um recarregamento forçado (Ctrl+Shift+R no Windows, Cmd+Shift+R no Mac) normalmente resolve. Para os visitantes, sites bem construídos dão novos nomes aos arquivos atualizados, para que os caches busquem a nova versão automaticamente.

O que acontece ao limpar o cache?

Limpar o cache do navegador apaga as cópias guardadas de arquivos e páginas que ele armazenou, para que tudo seja baixado de novo na próxima vez. Isso pode corrigir páginas que parecem quebradas ou desatualizadas, e as páginas vão carregar um pouco mais devagar na primeira vez depois disso.

O cache pode causar problemas?

Sim. O principal risco é entregar dados desatualizados — um preço antigo, um nível de estoque defasado — ou, pior, guardar em cache a página privada de um usuário e mostrá-la para outra pessoa. Boas regras de cache definem o que pode ser guardado, por quanto tempo, e nunca guardam dados pessoais em caches compartilhados.

Mythex · Pricing · Crie qualquer coisa com IA · Templates de sites e apps · Mythex comparado · Glossário de criação de apps com IA · Ferramentas grátis para criar apps com IA · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)