Solid Cache: cache no banco de dados
O curso acompanha como uma aplicação Rails usa o Solid Cache, um cache guardado no banco de dados. Ele mostra quando faz sentido usar cache, os seis caches de fragmento com suas chaves compostas e como o versionamento pelo updated_at aposenta entradas antigas sem limpeza manual. Em contraste, apresenta um valor em Rails.cache.fetch que expira em cinco minutos. Depois examina a tabela SolidCache::Entry e explica por que o cache ganhou banco próprio, enquanto a fila e o cable ficaram no primário.
O que você vai aprender
- ✓As quatro condições da aposta de um cache, e o que não guardar
- ✓Por que cada elemento de uma chave de fragmento composta existe
- ✓Como cache_key e cache_version fazem as entradas se aposentarem sozinhas
- ✓Guardar um valor Ruby com Rails.cache.fetch e expires_in
- ✓O que a tabela SolidCache::Entry guarda e como as leituras vão em lote
- ✓Os custos e ganhos de dar ao cache um banco próprio
O que esta aplicação guarda em cache, e por quê
Um cache é mais uma aposta do que um truque de velocidade. Ele aposta que algum trabalho é caro de produzir, barato de guardar, pedido várias vezes e aceitável quando um pouco desatualizado. As quatro coisas precisam valer. Quando uma delas não vale, o cache piora o sistema de um jeito difícil de…
Ler a aula completa grátis →Currículo
7 aulasO que esta aplicação guarda em cache, e por quê
Mostra quando o cache compensa, os sete lugares com cache no app e por que fragmentos e estatísticas expiram diferente.
Cada elemento das chaves de cache compostas deste app
Explica por que idioma, estado de login e progresso de cada aluno aparecem nas chaves de cache em array.
Como as entradas de cache deste app se aposentam pelo versionamento
Mostra como um cache_key fixo, a versão pelo updated_at e o digest do template aposentam entradas sem limpeza manual.
Rails.cache.fetch: guardando um valor em vez de HTML
Guarda um objeto Data de estatísticas com chave string escrita à mão e expiração de cinco minutos, sem versionamento.
SolidCache::Entry: a única tabela que guarda todo valor em cache
Examina a tabela SolidCache::Entry, suas colunas, o total de byte_size e as leituras em lote por key_hash no roadmap.
Por que o cache ganhou o próprio banco
Explica por que o cache ganhou banco próprio por backups e descartabilidade, e quanto essa separação custa.
Juntando tudo: de uma página no ar a uma linha que dá para inspecionar
Segue um card do roadmap da chave de cache até a linha na tabela e fecha com um desafio em Ruby puro.