Quando preciso colocar um cache de memória como Redis ou Memcached na frente da camada de banco de dados para o backend?
Respondendo ao seu comentário acima:
...devo colocar um cache de memória como Redis ou Memcached?
p>Pode ser! :-)
Há uma sabedoria que diz que a consulta de banco de dados mais rápida é aquela que você não precisa fazer, porque sua aplicação já tem o resultado ou pode obtê-lo de outra forma (presumivelmente a outra forma é mais rápida).
Quanto mais vezes o seu aplicativo puder usar um valor em cache ao invés de executar uma consulta de banco de dados, melhor será para o banco de dados.
Se o seu aplicativo for tal que o mesmo resultado da consulta de banco de dados nunca mais será necessário, então não há necessidade de armazená-lo em cache. Não há maneira de conhecermos a sua aplicação.
Se tiver uma aplicação que possa beneficiar do cache, um padrão comum na codificação da aplicação para os dados em cache é:
- Check for the data in the cache. Isto é, uma busca por uma determinada chave.
- Se os dados estão no cache, você está acabado. Você tem os dados, então você está pronto para usá-los em qualquer coisa. Esperemos que você faça isso dezenas ou centenas de vezes antes de precisar voltar à base de dados para obter os dados atuais.
- Se os dados não estiverem na cache, execute a consulta da base de dados para obter os dados. Neste momento, coloque-os na cache, para que o próximo consumidor os encontre lá. Depois devolva os dados e use-os.
Mas que valores de dados você pode armazenar? E quanto tempo até você precisar ir buscá-lo na base de dados novamente?
Isso depende inteiramente da sua aplicação. Alguns usos de dados requerem absolutamente os dados mais atuais, e os dados estão mudando rapidamente. Você tem pouca oportunidade de usar a cópia em cache uma segunda vez antes que ela fique desatualizada. Este não é um bom candidato para usar um cache. Se você só guarda o valor em cache, mas nunca o lê do cache, então o cache não está ajudando.
Apenas você conhece sua aplicação o suficiente para saber quais resultados de consulta são bons candidatos para o cache. A regra é: se a sua aplicação relê os dados do cache muitas vezes antes de precisar de ser actualizada, então é um bom candidato.
A maioria das aplicações pode usar o cache com bom efeito.
Artigos semelhantes
- Que percentagem dos dados gerais do Facebook está em cache no seu cluster memcached?
- Que elementos compõem um servidor backend quando se fala de um servidor backend que servirá uma API construída sobre o padrão REST?
- O tamanho da memória cache de um laptop é tão importante quanto a memória RAM?
- Como o bloco de cache foi substituído em cache totalmente associativo?