Adicione em Cache as principais páginas mais acessadas e importantes da sua loja Opencart 3 e 2.3.0.2, como: Home, Produto, Categorias, Informação, entre outras, diminuindo o consumo do banco de dados, servidor e principalmente melhorando o desempenho da sua loja.
Reduz no geral pelo menos 200% do carregamento das páginas com cache, melhoria muito importante principalmente para loja usando muitos recursos do servidor ou que deseja a melhor experiência para o seu cliente.
A melhora no desempenho também ajuda no SEO da Loja, os buscadores dão preferência para lojas otimizadas e com melhores desempenhos.
O que faz
Teste na Loja padrão do Opencart 3:
Feitos em um servidor na Digital Ocean no EUA com 1GB de Ram e 1 CPU, com outros serviços rodando nele. Cache em arquivos, cada 100ms = 0.1s, logo 500ms = 0.5s.
Home: 500-600ms, após a melhoria 150ms-200ms, basicamente
Página do Produto, Busca, Página de informações e outras páginas com cache no geral tiveram resultados semelhantes ao da Home, tendo uma melhora de pelo menos 2x menos tempo para carregar a página e muito mais se não levarmos em conta o delay de chegar a comunicação até o servidor no EUA.
Como sabemos, envolve também o tempo até chegar ao servidor da Loja no EUA, que tem pelo menos um delay (atraso) de uns 100ms-150ms ou mais.
Por isso fizemos também um teste na Home adicionando no PHP uma contagem no começo dela e antes do retorno da parte visual e mesma coisa se tiver o cache.
Levou 320ms ou mais e com o cache levou 16-18ms, ou seja, o processamento do PHP e Banco de Dados leva normalmente mais de 300ms e tem instabilidade, afinal depende da disponibilidade dos recursos pela máquina, enquanto usando o cache se mantém mais estável, não tendo picos muito diferentes e sendo no geral 20x mais rápido.
Já a categoria Iphone e Ipads com poucos produtos, levou no geral 350ms-400ms e com cache 70-80ms, no geral 5x mais rápido.
Páginas com mais váriaveis de consulta como filtro, ordem e outros detalhes, devem ter uma melhora de pelo menos 5x ou mais e página mais simples como do produto, informação, home e outras no geral uma melhora de uns 15-20x, dependendo da quantidade de dados, servidor e tamanho o resultado pode ser ainda melhor.
Resumo do que é feito
Em sua loja Opencart para carregar a parte visual do site, antes é feito o processamento do PHP e Consulta no Banco para puxar os dados e processar eles.
Envolve portanto o controller, responsável por chamar o model, library, processar os dados e enviar para a parte visual, este processo envolve diversos códigos PHP no geral de rápido processamento, porém depende também do banco de dados e seu tamanho, imagina retornar uma categoria com 100, 1.000, 10.000 ou até mais produtos, o controller vai chamar várias consultas usando o Model para puxar os Produtos, dados da categoria, depois vai percorrer todos os produtos e fazer a montagem dos dados, que é retornanda no final para a chamada da parte visual, que carrega o visual com os dados passados pelo controller.
O que fazemos é no começo do código verificarmos se tem os dados em cache, se já tiver enviamos para a parte visual os dados em cache, ou seja, sem precisar ficar fazendo N consultas ao banco, montagem dos dados e outros detalhes lógicos.
Já no final do código, salvamos em cache os dados gerados, por isso na primeira vez é rodado normalmente e gerado o cache e nas próximas chamadas é usado o código em cache, logo mesmo que limpe o cache no geral, continua normal o funcionamento e vai ser gerado novamente um novo cache após o primeiro acesso a certa página com a melhoria implementada.
Só colocamos em cache páginas com foco em retorno de dados, não podendo ser adicionado ao cache por exemplo Carrinho, que varia muito, Checkout, Cadastro do cliente, entre outras páginas, que precisam realizar adição de dados no banco, em todo caso estas tem normalmente muito menos acessos, diferente da Home, Categorias, Produtos e outras, que são normalmente as mais acessadas e relevantes para o SEO e Buscadores.
O que é cache?
Resumidamente é uma forma de salvar e usar certos dados com acesso rápido e temporário, podendo ser salvo em arquivos, bancos, entre outros locais.
Tem um tempo de expiração, no qual após certo tempo ele é limpo e refeito depois um novo cache com dados mais atuais, por padrão no Opencart dura 1h ou conforme configurado na Loja.
É muito útil para otimização de desempenho, pois pode ser salvo dados já trabalhados, evitando assim o consumo do banco de dados e processamento dos dados e tem um acesso muito rápido.
Observação
Depende das melhorias usadas nas páginas com Cache ou tema, talvez seja preciso retirar o cache de alguma página/local ou adaptar, pois tem melhorias que não lidam bem com Cache ou precisam ser rodadas, como a contagem de visualizações dos Produtos, que colocamos antes do Cache para ela poder ser rodada/iniciada.
Logo em certos casos temos que tirar o Cache de certa página, mas ainda aproveitando o recurso nas demais páginas e locais.
Para limpar o Cache usando Redis usa na URL: seusite.com.br/index.php?route=module/code_cache/clearAll&token=&cache_type=redis e para limpar o Cache geral do Redis a URL: seusite.com.br/index.php?route=module/code_cache/deleteAllRedis &token=&cache_type=redis
Lembre de trocar seusite.com.br pelo endereço do site e no token= informar o Token usado de segurança.
Pré Lançamento
08/02/2021
Atualização
Versão 1.1 - 26/08/2021
Compatibilidade