Casa > Q > Quando Preciso Colocar Um Cache De Memória Como Redis Ou Memcached Na Frente Da Camada De Banco De Dados Para O Backend?

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 é:

  1. Check for the data in the cache. Isto é, uma busca por uma determinada chave.
  2. 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.
  3. 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.

De Josias

Posso ter jogos de romance visual de graça de alguma forma? :: Como anexar uma imagem à minha pergunta Quora