DevGuideTK
← Trilha Backend

Cache

Estratégias para guardar respostas caras, e o problema difícil de saber quando descartá-las.

Cache é uma cópia guardada perto de quem usa, para não repetir um trabalho caro: uma consulta ao banco, uma chamada a outro serviço, um cálculo.

Um cache bem colocado corta a latência e a carga do banco em várias vezes. Mal colocado, entrega dados velhos, errados ou de outro usuário.

  • Vale a pena para dados lidos com frequência, caros de obter e que mudam pouco.
  • A parte difícil é decidir quando a cópia deixa de valer.
  • Todo item precisa de um tempo de expiração, mesmo que haja outra forma de invalidação.
  • Muitas requisições ao mesmo tempo para uma chave que acabou de expirar podem derrubar o banco.
  • Dados de um usuário nunca podem cair na chave de outro.