Executando verificação de segurança...
1

Caching - quando fazer?

Deixando de lado a questão do trade off de dados desatualizados e olhando apenas pra questão computacional, existe alguma relação de quando vale a pena ou não fazer caching ao invés de fazer um SELECT no banco?

Que o cache vai ser exponencialmente mais rápido é fato, mas, em termos de processamento, vai exigir mais do servidor e deixar ele mais lento se exagerar no lifespan do cache ou no número de registros salvos? Existe uma boa métrica pra chegar nesses dois números?

Carregando publicação patrocinada...
2
2

Cache é uma coisa bem complicada que geram bons pontos de falhas.
Eu sempre tento não usar cache, mas quando fazemos testes e percebemos que o cache vai trazer uma melhora significativa, fazemos.
Sobre exigir do servidor, talvez não seja um grande problema ja que temos soluçoes de cache distribuido como Redis.

Antes de tomar a decisão de usar cache, o ideal é voce ver a relação de leitura e escrita, geralmente um registro é inserido uma vez e lido milhares de vezes sem ser alterado, esse é um cenário para colocar cache sem muitos problemas. Mas não esqueca de invalidar o cache toda vez que o registro for atualizado. Uma forma mais "facil" de aplicar cache é usando o CQRS.

1

Quando vc realiza o cache de alguma consulta, vc assume o risco da veracidade do dado em relação a performance, quanto maior a necessidade de performance maior é a probabilidade de vc ter dados que não são mais atualizados possível, pois vc estará fazendo cache desse dados... então depende muito da situação, um dado que não altere com uma certa frequência vc pode fazer cache dps da 1 request e guardar por 1 dia... mas por exemplo o saldo de uma conta bancária vc sempre precisa desse dado o mais atualizado possível...