Sites de grande porte normalmente tem problemas com o servidor por conta do alto número de requisições das páginas dinânmicas. Para evitar que o servidor caia, nós usamos um sistema de cache. Leia um trecho retirado da Wikipedia:
Cache é um dispositivo de acesso rápido, interno a um sistema, que serve de intermediário entre um operador de um processo e o dispositivo de armazenamento ao qual esse operador acede. A vantagem principal na utilização de uma cache consiste em evitar o acesso ao dispositivo de armazenamento – que pode ser demorado -, armazenando os dados em meios de acesso mais rápidos.
Ou seja, a idéia é evitar que o sistema faça buscas no banco de dados sem necessidade, por exemplo.
Mas, como fazer isso no ExpressionEngine?
O ExpressionEngine já vem com um sistema de cache. Aliás, vem com alguns sistemas de cache independentes. Você pode fazer cache das query do banco de dados, das tags, dos templates (página por página), entre outros.
Cache nos Templates
É possível habilitar e desabilitar o cache de cada um dos templates criados. Isso é bom, porque você pode ter um template que faça buscas no banco de dados e um que é só tenha textos.
Para habilitar é fácil, entre na aba Templates e clique no link Template Preferences Manager. Nesse link é possível habilitar e desabilitar algumas opções relativa aos templates, como o cache. Primeiro selecione o grupo de template (Template Groups) que você quer cachear. Ao seleccionar um grupo, ele mostrará a lista de templates desse grupo. Clique no(s) template(s) e depois, na opção Enable Caching, selecione Yes (o padrão é Do Not Change).
Com o cache ativo, você deve determinar o tempo de vida do cache, em minutos, no campo Refresh Interval. Feito isso, basta clicar no botão Update.
Outro lugar que você pode habilitar o cache nos templates, é clicando em Preferences, na segunda coluna da aba Templates. As opções são as mesmas citadas acima.
Lembre-se de dar permissões de escrita no diretório system/cache/page_cache.
Cache das Tags
Em alguns casos você pode optar por não fazer o cache de um template inteiro, já que algumas partes desse template precisam ser atualizadas frequentemente. Porém, seria interessante fazer cache de uma determinada parte. Para isso, basta adicionar esses dois parâmetros em qualquer tag:
1 |
cache="yes" refresh="tempo_em_minutos" |
Por exemplo:
1 |
{exp:weblog:entries cache="yes" refresh="5"} |
Permissão de escrita no diretório system/cache/tag_cache também é necessário.
Cache Tags Query Weblog
Para exibir informações de posts, é usado a tag {exp:weblog:entries}. Podemos utilizar a opção anterior para fazer o cache dessas tags, mas o ExpressionEngine permite fazer isso dinamicamente em todas as tags que buscam informações com a tag {exp:weblog:entreis}.
Essa opção está localizada na aba Admin > Weblog Administration > Global Weblog Preferences. Selecione Yes, em Cache Dynamic Weblog Queries? e clique em Update.
Essas são algumas opções para habilitar o cache no sistema do ExpressionEngine. É bom lembrar que isso tudo só vai funcionar se as pastas que estão em system/cache/ estiverem com permissões de escrita.