Palestra feito na PHPConf - 2016
Tudo sobre cache em aplicativos PHP, comento sobre os pontos de falha, o problema de invalidação, estrategias de como aplicar cache, bem como todos os tipos de cache, opções e possibilidades de multiplos caches e afins.
Tópicos importantes:
-- Planejamento de cache
-- Estrátegias de invalidação
-- Cache em back end
-- Cache para front end
-- Cache reverso
-- Localstorage
3. Nossa conversa
➔ Por onde começar
➔ Estratégias
➔ Aonde tomar cuidado
"O problema é cache, sempre o cache"
➔ Quais são os tipos de cache
Memória, io, no backend no frontend.
➔ Exemplos
25. Cache invalidation - distributed system
Usuário
Server
Process Process
Cache
Server
Usuário Usuário Usuário
Usuário
Process
Server
Cache
V1
V2
26. Cache invalidation - Mobile/Desktop
Desktop
Server
Process
Cache
Mobile
Versão desktop
para mobile
27. Cache invalidation - Mobile/Desktop
Desktop
Server
Process
Cache
Mobile
Versão desktop
para mobile
28. Invalidação:
Deploys
Após fazer um deploy,
rodar um script que inválida
alguns tipos de cache.
Por tempo
Estabeleça tempos de
invalidação, quase todas as
informações não precisam
ser em real time
Por triggers
Por gatilhos, tais como um
novo post, uma nova
atualização de preços e
afins
29. Para as invalidações
➔ Crie serviços para gerenciar o cache (cache manager),
centralizando o controle de cache, facilitando o processo de
invalidação.
➔ Estabeleça regras claras e concisas de criação e invalidação de
cada cache.
➔ Tenha o dobro de cuidado quando estiver trabalhando com
cache em sistema distribuídos.
➔ Começe o mais rápido
30.
31.
32.
33.
34. Instale o w3 total cache e
tenha o site 300% mais
rápido.
36. Cache
➔ Aumenta consideravelmente a velocidade de carregamento do
site, principalmente de sites de conteúdo, muito utilizados com
wordpress ou drupal.
➔ Diminui consideravelmente o consumo de recursos de servidor,
evitando processos repetitivos.
➔ Atenção ao tipo de cache utilizado, cache em arquivos tendem a
ficar obsoleto.
➔ Começe o mais rápido possível...
49. Em disco
➔ Realmente tem efetividade para grandes processamentos.
➔ IO é um processo lento e bem custoso
➔ O cache fica na máquina, o que pode trazer problemas para
sistemas distribuídos
➔ SSD sempre...
51. Cache de memória
➔ Bem mais rápido comparado ao IO
➔ Perfeito para sistemas distribuídos
➔ Facilmente escalável
➔ Recursos melhores (memcache: objetos e possibilidade de
utilizar tags)
86. Manifest cache
Possibilidade de guardar arquivos e informações para uso
offline.
- Navegação off-line: os usuários podem navegar por todo o site
quando estão off-line
- Velocidade: os recursos armazenados em cache são locais e,
portanto, são carregados mais rapidamente.
- Redução da carga do servidor: o navegador fará download do
servidor apenas dos recursos que forem alterados.
-
87.
88.
89. Manifest
➔ Planeje bem o processo de invalidação, para qualquer tipo de
alteração, este deverá ser replicado no arquivo de manifesto.
➔ Criado principalmente para oferecer uma navegação offline.
➔ Entre 5 a 10mb de espaço (depende do browser).