Cache em Laravel: o que cacheio e o que nunca cacheio

Capa do artigo: Cache em Laravel: o que cacheio e o que nunca cacheio

Cache mal usado cria bug pior do que o problema de performance que deveria resolver — dado desatualizado sendo servido como se fosse atual é uma categoria de erro que só aparece em produção, difícil de reproduzir localmente. Uso cache do Laravel de forma seletiva, nunca como reflexo automático.

O que cacheio sempre

Resultado de consulta cara que muda pouco — lista de categorias, configuração do sistema, ranking que só precisa atualizar a cada alguns minutos. Esses casos têm uma característica em comum: um pequeno atraso na atualização não quebra nada para o usuário, e o ganho de performance é imediato.

O que nunca cacheio

Saldo financeiro, status de pagamento, qualquer dado onde uma informação desatualizada pode levar a uma decisão errada do usuário ou do sistema. Nesses casos, prefiro otimizar a query em si — com os índices certos, como detalho em Índices em MySQL — a arriscar servir dado velho disfarçado de atual.

Invalidação é a parte difícil

A frase "tem duas coisas difíceis em ciência da computação: nomear variáveis e invalidar cache" existe por um motivo. Sempre que decido cachear algo, decido junto exatamente quando aquele cache será invalidado — nunca deixo isso para descobrir depois que já causou um bug em produção.

Posts relacionados

/ Continue lendo