Cache: definição e todos os campos em que o cache é usado

Aviso de afiliados v3.1
Aviso de afiliados v3.2 (somente celular)

As áreas em que o cache é usado, do hardware à web, foram organizadas em uma única árvore seguindo as classificações da Wikipédia, do MDN e da documentação oficial do WordPress. CPU, sistema operacional, banco de dados e navegador usam o mesmo nome, então o que é apagado ao limpar o cache depende da camada.

O cache guarda temporariamente dados usados com frequência ou que logo serão necessários em um armazenamento mais rápido que o original e, quando chega a mesma solicitação, responde com essa cópia em vez do original.

O artigo da Wikipédia em inglês Cache (computing) divide os caches em caches de hardware, como os de CPU e GPU, e caches de software, como os de disco, web, DNS e banco de dados. A árvore abaixo agrupa essa classificação pelo lugar onde cada cache fica, e os caches web seguem a divisão do MDN entre private cache e shared cache.

🗂️ Onde o cache é usado
💻 Ⅰ. Dispositivos do usuário
Cache do sistema operacionalCache de disco · cache de DNS
Cache do navegadorPrivate cache do cache HTTP
Cache de aplicativos móveisMiniaturas · dados de sessão
🖥️ Ⅱ. Servidor e aplicação
Cache de páginaHTML pronto (WP Rocket · cache FastCGI)
OPcacheBytecode PHP
Cache de objetosRedis · Memcached
Cache de frameworks webLaravel · Django
🌐 Ⅲ. Entrega de conteúdo · rede
CDNShared cache do cache HTTP
Cache de proxyDireto · reverso (Varnish)
Cache de redeCache ARP · cache do resolvedor DNS
🗄️ Ⅳ. Banco de dados · armazenamento
Cache interno do BDBuffer pool do InnoDB · Shared Buffers
Cache de armazenamentoControlador de disco · DRAM do SSD
⚙️ Ⅴ. Hardware
Cache da CPUL1 · L2 · L3 · TLB
Cache da GPUTexturas · dados de shader
☁️ Ⅵ. Nuvem · virtualização
Cache de contêineresCamadas do Docker
Funções serverlessWarm Start
Cache de buildDependências de CI/CD · artefatos

No simulador do artigo Cache do site & cache interno do servidor: como funciona o cache do WordPress você pode ver a ordem em que o cache do navegador, a CDN e o cache interno do servidor tratam uma única solicitação do WordPress.

Ⅰ. Dispositivos do usuário

  • ↳ Client-Side Cache

O cache em dispositivos do usuário, como computadores pessoais e smartphones, pode ser dividido em cache do sistema operacional (SO), cache do navegador e cache de aplicativos móveis.

Cache do sistema operacional (SO)Memória do dispositivo (RAM)
O que guardaDados lidos do disco · domínios e endereços IP

O cache de disco (cache de páginas) mantém na memória os dados lidos do disco e é gerenciado pelo kernel do sistema operacional. O cache de DNS guarda os domínios e endereços IP consultados recentemente.

Cache de discoCache de DNS
Cache do navegadorArmazenamento do navegador
O que guardaHTML · CSS · JS · imagens · fontes

Quando o mesmo recurso é solicitado de novo, a solicitação não vai até o servidor ou só verifica se ele mudou. Com um Service Worker (Cache API), um app web pode abrir com os recursos armazenados mesmo offline.

private cacheService Worker
Cache de aplicativos móveisArmazenamento do app
O que guardaMiniaturas · parte do conteúdo · estado de login

Apps que lidam com conteúdo pesado guardam no dispositivo os dados baixados e as listas vistas recentemente para não baixar os mesmos dados de novo.

YouTubeInstagram

Ⅱ. Cache de servidor e de aplicação

  • ↳ Server-Side Cache

O cache do lado do servidor é o cache que entra no processo de montar a página depois que a solicitação chega ao servidor. A documentação oficial do WordPress o divide em plugins de cache (cache de página), cache de objetos e cache de servidor (caches de opcode como o OPcache).

Cache de páginaDisco do servidor · memória
O que guardaPágina HTML pronta

Para a mesma página, envia a cópia armazenada sem executar o PHP. Há plugins de cache e caches do servidor web.

WP RocketCache FastCGI do NginxLiteSpeed Cache
OPcacheMemória do servidor
O que guardaBytecode PHP compilado

Quando o mesmo arquivo é executado de novo, a compilação é pulada. Vem incluído por padrão desde o PHP 5.5.

Cache de opcode
Cache de objetosMemória do servidor
O que guardaResultados de consultas · dados de sessão

Guarda os dados usados com frequência em um armazenamento em memória para não repetir a mesma consulta.

RedisMemcached
Cache de frameworks webAplicação
O que guardaTemplates · rotas · resultados de consultas

Os frameworks web guardam templates renderizados e resultados de consultas no próprio cache.

LaravelDjango

Ⅲ. Cache de entrega de conteúdo / infraestrutura de rede

Os caches da infraestrutura de rede respondem com cópias entre o visitante e o servidor de origem, reduzindo a distância física e a carga do servidor de origem. No padrão de cache HTTP, eles correspondem ao shared cache, usado por vários visitantes.

CDNServidores de borda
O que guardaArquivos estáticos · páginas

Entrega o conteúdo a partir do servidor mais próximo do visitante entre servidores espalhados pelo mundo. A estrutura e as vantagens estão no artigo O que é CDN? Motivos para usar uma CDN e 5 vantagens dedicado ao assunto.

CloudflareAkamaiFastlyQUIC.cloud
Cache de proxyServidor proxy
O que guardaRespostas do servidor

O proxy direto guarda as respostas na frente do cliente, como em uma rede corporativa, e o proxy reverso as guarda na frente do servidor.

Varnish CacheProxy reverso Nginx
Cache de redeEquipamentos de rede · resolvedores DNS
O que guardaAssociações entre IP e endereço MAC · resultados de consultas DNS

Os equipamentos de rede guardam as associações no cache ARP, e os resolvedores DNS das operadoras e os públicos guardam os resultados das consultas durante o TTL do registro.

Cache ARPCache do resolvedor DNS

Ⅳ. Cache de banco de dados e de sistemas de armazenamento

Como a E/S de disco é lenta, bancos de dados e dispositivos de armazenamento mantêm na memória os dados lidos com frequência.

Cache interno do banco de dadosMemória do servidor de BD
O que guardaDados lidos com frequência · índices

Mantém na memória os dados lidos com frequência e os índices. O query cache do MySQL foi removido na versão 8.0; o MariaDB ainda o tem, mas ele vem desativado por padrão.

Buffer pool do InnoDBPostgreSQL Shared BuffersMongoDB WiredTiger
Cache de armazenamentoMemória dentro do dispositivo de armazenamento
O que guardaDados lidos · gravados recentemente

A memória embutida no controlador do disco rígido e a DRAM dentro do SSD guardam dados temporariamente e reduzem a latência de E/S.

Cache do controlador de discoSSD · NVMe DRAM

Ⅴ. Cache em nível de hardware

Os caches de hardware são memórias de alta velocidade dentro da CPU e da GPU que processam dados mais rápido que a memória principal (RAM).

Cache da CPUDentro do processador
O que guardaInstruções · dados · traduções de endereços

O L1 existe separadamente em cada núcleo e se divide em cache de instruções e cache de dados, enquanto o L3 é compartilhado por todos os núcleos. A unidade de gerenciamento de memória (MMU) guarda no TLB os resultados da tradução de endereços virtuais em endereços físicos.

L1L2L3TLB
Cache da GPUDentro da unidade de processamento gráfico
O que guardaTexturas · instruções de shader · resultados intermediários

Aumenta a eficiência de processamento da GPU em jogos, gráficos 3D e cálculos de machine learning.

Ⅵ. Cache em ambientes de nuvem / virtualização

Ambientes de nuvem e de virtualização reutilizam imagens de contêiner, ambientes de execução de funções e artefatos de build para reduzir o tempo de implantação e de execução.

Cache de contêineresServidores de build · registries
O que guardaCamadas da imagem

Uma imagem Docker é formada por várias camadas, e as camadas que não mudaram não são reconstruídas nem baixadas de novo.

Docker
Funções serverlessAmbiente de execução na nuvem
O que guardaAmbiente de execução

Mantém por um tempo o ambiente de execução de uma chamada já concluída e o reutiliza na chamada seguinte, reduzindo o tempo de inicialização (Cold Start) (Warm Start).

AWS LambdaGoogle Cloud Functions
Cache de buildArmazenamento de cache do CI
O que guardaBibliotecas de dependências · resultados de compilação

Reduz o tempo de builds repetidos.

GitHub ActionsGitLab CI

🔢 FAQ & conteúdo recomendado

Não. Limpar o cache do navegador apaga só as cópias guardadas no dispositivo do visitante. O cache de página do servidor e as cópias da CDN são limpos pelo administrador do site no plugin de cache ou no painel da CDN.

A primeira solicitação logo depois da limpeza vai até o original, então responde mais devagar que o normal. Quando essa solicitação recria a cópia, as seguintes voltam à velocidade normal, e o [Pré-Carregar] do WP Rocket cria as cópias com antecedência depois da limpeza.

No Windows, os tamanhos dos caches L1, L2 e L3 aparecem na parte de baixo da tela [Desempenho] → [CPU] do Gerenciador de Tarefas. No Linux, você vê os mesmos valores na saída do comando [lscpu].

💾 Posts sobre cache 10 posts
🗂️ Cache
📋 Cache: definição e todos os campos 📄 Cache do site & cache interno do servidor
📋 Guia de configuração do WP Rocket 📝 Zend OPcache 📝 Instalação do Redis Cache
📝 O que é CDN? 📝 Varnish Cache
📋 Teste de velocidade do WP Rocket 📝 Caso de melhoria de velocidade 📝 Plugins de cache · otimização

ℹ️ Aviso de afiliados
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Demonstre sua humanidade: 0   +   6   =