A partir de quando usar cache.

Essa é fácil de responder: depende.

Sempre ele. Não tem como ser diferente. Não é tão fácil responder de forma universal. E mesmo que pareça fácil, provavelmente é um erro. Até mesmo medir em alguns casos pode ser difícil.

O cache não é tão milagroso quanto algumas pessoas pensam. Gerenciá-lo não é simples e custa caro.

Me lembro do caso do Stack Overflow, onde tem alguns dos melhores desenvolvedores que pode encontrar e usar cache em todo canto, por isso eles conseguem entrar tudo muito rápido com pouco infra. Até que um dia descobriram que em várias situações o cache estava atrapalhando. Confiaram na intuição e ela não se comprovou. Tiraram e ficou melhor.

Então é o de sempre: até que você comprove que alguma complexidade inserida dê um resultado que se paga, não use.

There are only two hard things in Computer Science: cache invalidation and naming things.

-- Phil Karlton

Cache é difícil e pode criar problemas, então estude muito, saiba usar, mas evite sempre que possível. Precisa ser um ganho muito grande para usar. E na maioria dos sistemas de aplicações ele não ajuda tanto assim. Mesmo em sistemas que trabalham com volume de acesso muito grande que compense, esse volume precisa ter um certo padrão.

Não sei todos os detalhes, mas o Google não se beneficiará de usar cache em qualquer busca que alguém faça nele. Não sei nem mesmo se tem de forma seletiva.

Observar a relação entre a escrita e a leitura é importante.

Existem algumas situações que podem ganhar o cache com custo muito baixo, então ele pode ser tornar mais viável.

Não é caro fazer um protótipo para testar, mas é caro colocar no código principal e passar a ter que dar manutenção daquilo. Pense duas vezes.

Então faça sem. Se o sistema foi bem escrito será fácil mudar depois para agregar o cache se ele for necessário e for possível ter ganho mensuráveis que há ganho na maioria das situações.

Lembre-se que os bancos de dados já possuem um sistema sofisticadíssimo de cache, e na maioria dos casos é suficiente.

Cuidado com soluções ingênuas, elas são simples, mas quase sempre não funcionam como a pessoa espera. Em PHP por exemplo tem um custo enorme e precisa ser bem benéfico.

Faz sentido para você?

Espero ter ajudado.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).