• Mostrando resultados da busca por {{ posts_busca["corrected"] }} {{termo_busca}}
  • {{post.title}}
  • Não foram encontrados resultados para {{ posts_busca["corrected"] }} {{termo_busca}}

Header de Cache: Hit e Miss

Andre Moura - Especialista de Atendimento na KingHost

Quer saber como deixar seu site mais rápido, entenda tudo sobre Headers de Cache Hit e Miss e como eles afetam a velocidade de seu site.

Cache hit e miss é um importante assunto quando se fala em aumentar a velocidade que um site é carregado. A diferença entre eles é principalmente se o conteúdo acessado vai estar no cache ou terá que ser procurado direto na memória do servidor.

Cache Hit

Cache Hit é quando o conteúdo solicitado pela CPU é encontrado no Cache. Nesse caso a busca pelo conteúdo não consome memória devido o conteúdo já estar no cache, tendo uma resposta mais rápida.

Cache Miss

Cache Miss é quando o conteúdo solicitado pelo servidor não está no Cache. Nesse caso a CPU vai tentar buscar a resposta em outros níveis de cache e caso não encontre, diretamente na memória da aplicação. Tendo uma resposta mais lenta e consumindo processamento da aplicação.

Reduzir a quantidade de Cache Miss

Quando ocorre o cache miss ele continua procurando o conteúdo em até 4 níveis de cache. No momento em que não encontra em um começa a procurar no próximo, no entanto para cada nível de cache que ele procura o tempo de resposta da requisição aumenta, causando lentidão na abertura da aplicação.

Para evitar que tenha grandes quantidade de Cache Miss, o que pode ser feito é adicionar um tempo de expiração para a vida útil do cache.
No caso a vida útil é o tempo que um conteúdo fica salvo em cache.

Como escolher a vida útil do cache

Escolher a vida útil do cache depende muito do site em que será configurado o cache.

Existem algumas opções de como pode ser definido o tempo de expiração.
Pode ser definido um curto tempo de expiração, o que faz o cache ser recarregado constantemente, ocasionando mais Cache Miss.
Ou ser definido um longo tempo de expiração, onde o cache é limpo poucas vezes, causando menos Cache Miss.

É importante observar que não existe um padrão específico para a vida útil do cache. Isso irá depender muito do conteúdo do site em que o cache será aplicado.

No caso se você tem um site que é atualizado constantemente, como um site de notícias, não é recomendado que coloque um longo tempo de cache, pois suas atualizações no site vão demorar para serem publicadas.

Mas se você tem um site onde raramente são feitas atualizações não teria problema de colocar um longo tempo de expiração como 1 semana ou 2 semanas, pois não teria atualizações para serem publicadas.

Como definir o tempo de cache

A vida útil do cache pode ser definida de várias maneiras dependendo de sua aplicação.
Em servidores apache podem ser definidas colocando regras no .htaccess.

# Enable Compression
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otfsucuri-scanner
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-iconsucuri-scanner
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
</IfModule>
<IfModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
  mod_gzip_item_include handler ^cgi-script$
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_exclude mime ^image/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

# Leverage Browser Caching
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpg "access 1 year"
  ExpiresByType image/jpeg "access 1 year"
  ExpiresByType image/gif "access 1 year"
  ExpiresByType image/png "access 1 year"
  ExpiresByType text/css "access 1 month"
  ExpiresByType text/html "access 1 month"
  ExpiresByType application/pdf "access 1 month"
  ExpiresByType text/x-javascript "access 1 month"
  ExpiresByType application/x-shockwave-flash "access 1 month"
  ExpiresByType image/x-icon "access 1 year"
  ExpiresDefault "access 1 month"
</IfModule>
<IfModule mod_headers.c>
  <filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$">
  Header set Cache-Control "max-age=2678400, public"
  </filesmatch>
  <filesmatch "\.(html|htm)$">
  Header set Cache-Control "max-age=7200, private, must-revalidate"
  </filesmatch>
  <filesmatch "\.(pdf)$">
  Header set Cache-Control "max-age=86400, public"
  </filesmatch>
  <filesmatch "\.(js)$">
  Header set Cache-Control "max-age=2678400, private"
  </filesmatch>
</IfModule>

Exemplo de regra que pode ser colocada no .htaccess.

Caso seja um WordPress pode ser adicionado com plugins de otimização, que tenham essa função. Um plugin gratuito que é muito utilizado para essa função é o WP Fastest Cache.

Além disso em nossos servidores oferecemos o serviço Varnish Cache onde é possível definir o tempo de cache para sua aplicação. Você consegue definir um cache total para a aplicação ou específico para cada extensão de arquivo. Caso queira ler mais sobre pode verificar nesse Post: Varnish: Como configurar o sistema de cache em seu site.

Restando qualquer dúvida sobre Cache Hit e Miss, entre em contato com nosso suporte através dos nossos canais de atendimento.

Oi! Eu sou Andre Moura e vim te convidar para você assinar nossa newsletter e ficar por dentro das novidades.
Enviar conteúdo por email
168 visualizações

Esse artigo foi útil pra você?