~/VibeHandbook
PDF grátis

Capítulo 14 · 06

Cache

Um armazena a resposta para uma pergunta cara, para que você não precise perguntar de novo. Se sua página inicial roda a mesma consulta pesada para cada visitante, guarde o resultado em cache no Redis por 60 segundos e sirva-o instantaneamente.

Cache é uma otimização de performance, não uma fonte de verdade. A armadilha clássica de iniciante é esquecer a invalidação de cache — a cópia em cache fica desatualizada e os usuários veem dados antigos. Regra geral: faça cache só quando tiver medido um gargalo real, e sempre tenha uma regra clara para quando o valor em cache expira ou é atualizado.

Há duas estratégias limpas, e misturá-las causa a maioria dos bugs de cache. Expiração baseada em tempo (TTL — Time To Live, como uma data de validade carimbada no valor em cache) diz "este valor é válido por 60 segundos, depois descarte" — simples, e bom quando dados um pouco desatualizados são inofensivos (uma contagem de visualizações, um feed da página inicial). Invalidação baseada em eventos diz "apague o valor em cache no momento em que os dados subjacentes mudarem" — correto, mas você precisa se lembrar de fazer isso em todo caminho de escrita, que é exatamente onde as pessoas escorregam. Na dúvida, prefira um TTL curto: um valor que está desatualizado por no máximo um minuto é um bug menor do que um valor desatualizado para sempre porque você esqueceu uma invalidação.

Quer offline?

Baixe o livro inteiro em PDF ou EPUB — grátis.