Reparei que muita gente tem procurado sobre otimização de sites e segurança, então vou tentar focar sobre esses dois assuntos essa semana.
Hoje falarei sobre o Memcached, um recurso indispensável para servidores que rodam sites pesados. A funcionalidade principal dele consiste em armazenar “qualquer coisa” na memória (RAM) do servidor para uso posterior. Segundo o site do próprio, ele é “um sistema distribuído de alto desempenho para o cacheamento (armazenamento) de objetos na memória, genérico por natureza, mas feito para aumentar a velocidade de sites dinâmicos, diminuindo a carga sobre o banco de dados”.
Quando usar o Memcache?
Suponhamos que você tenha um site que faz várias e várias consultas ao MySQL para exibir uma página e, algumas delas, demoram mais de 1 seguro para ser executada… Isso significa que o seu site não está otimizado e, obviamente, está mais lento do que poderia ser.
A maioria dos servidores - de qualidade - hoje em dia, já vêm com ele instalado… Caso você precise instalar ele no seu, recomendo dar uma olhada no site oficial para maiores detalhes.
Vou mostrar pra vocês como armazenar uma consulta na memória e depois pegar esses dados, sem precisar executar a query novamente… Vale lembrar que só vale a pena usar o Memcached para consultas que pesam no seu sistema, pois foi pra esse propósito que ele foi feito.
Consulta simples
Normalmente você faria uma consulta assim:
É uma consulta normal que, nesse exemplo, não deve pesar muito… Mas imaginemos que essa consulta demore uns 2~3 segundos para ser executada.
Armazenando o resultado na memória com o Memcached
Este exemplo irá armazenar o resultado da consulta na memória, durante 1 hora… No próximo bloco mostrarei como verificar se há um resultado armazenado na memória antes de executar a consulta novamente.
Consulta otimizada com o Memcached
Agora que já sabemos como armazenar o resultado na memória, podemos fazer uma verificação e só executar a consulta sempre que o resultado expirar ou não existir, dessa forma:
Função de atalho para o Memcache
Você ainda poderia fazer uma função para fazer todo esse trabalho por você… Ficaria mais ou menos assim:
E agora, o exemplo anterior usando a função:
–
Espero que tenham gostado! :)