O Magento é uma aplicação complexa, que faz uso de um modelo de dados não muito simples para dar a flexibilidade para quem o utiliza. Se o cache na plataforma Magento não for otimizado, ele acaba impactando negativamente na performance da loja.
O Magento tem em seus códigos algo chamado cache. Com cache, o Magento, pode gravar dados que são resultados prontos de operações dispendiosas em algum lugar e posteriormente recuperar esses resultados sem precisar refazer tais operações.
Isso gera alguns cenários inesperados, como quando gravamos alguma alteração no painel administrador e não vemos essa mudança imediatamente aparecer na loja. Normalmente, para resolver isso executamos a limpeza do cache. Quando fazemos isso, todos os resultados prontos que tínhamos guardados são apagados, e as operações “demoradas” precisam ser refeitas.
No Magento, os caches são compartilhados entre todos os clientes. Então, quando um cliente entra na loja pela primeira vez, o Magento irá realizar as operações e gravá-las no cache, quando algum outro cliente entrar, ele vai usar o mesmo cache gerado pelo primeiro cliente. O que é diferente de outros tipos de cache que acontecem por cliente, como o do navegador.
Como podemos ver na imagem acima, o Magento divide seus caches em “tags”, o que permite ao usuário administrador limpar alguns caches específicos. Por exemplo, quando mudamos uma configuração na loja, não temos a necessidade de limpar o cache de tradução (se a mudança não implica nisso), isso permite que somente parte do cache seja reconstruído na próxima requisição.
Redimensionamento de imagens
No Magento, temos também o cache de imagens do catálogo. Quando salvamos uma (ou mais) imagem no produto, o Magento guarda somente a imagem principal enviada. Ao longo do desenvolvimento de um tema para o Magento (até mesmo o tema padrão possui isso), podemos redimensionar essa imagem para qualquer tamanho que quisermos. Porém, realizar essa operação em cada acesso não é uma prática muito boa. Então, quando pedimos sempre a imagem do produto em um tamanho redimensionado, o Magento redimensiona essa imagem e grava uma cópia no sistema de arquivo. Na próxima vez que essa mesma imagem for requisitada, ele verifica se essa cópia existe, caso ela existir, ele simplesmente retorna ela, sem precisar redimensioná-la.
Otimização de tempo através da ferramenta
Como vimos, o cache nos ajuda bastante a economizar recursos e tempo de requisição. Claro que não é porque podemos usar ele que vamos “varrer a sujeira pra baixo do tapete”. Muitas otimizações podem (ou devem) ser feitas antes de pensarmos em cache.