Mais um post sobre uso do WAMP (Windows, Apache, Mysql e PHP) como ambiente de desenvolvimento, dessa vez vou falar da instalação do memcache no windows, como integrá-lo ao ambiente e como ativá-lo. O trabalho envolvido nisso é muito simples, é só instalação e configuração.
Primeiramente vamos falar sobre o memcache, ele é um daemon, ou seja, um serviço que roda stand-alone na máquina, que utiliza uma ou mais portas, e que pode ser inicializado, parado e reinicializado conforme necessidades. Ao contrário da sessão do PHP, que é visÃvel somente dentro do escopo de acesso do usuário (claro que existem maneira de compartilhar sessões), o memcache é visÃvel dentro de toda aplicação, ou seja, se tivermos 100 usuários on-line, eles compartilharão o mesmo cache. O motivo pelo qual cheguei ao uso do memcache é a necessidade diária de ganhar performance mantendo a qualidade do sistema mantendo todas as suas funcionalidades, mas vamos parar por aqui e vamos colocar a mão na massa.
Instalação
- Baixe os binários do memcache no site http://code.jellycan.com/memcached/ (pegue os binários win32).
- Agora vamos à instalção propriamente dita:
- Descompacte o conteúdo do arquivo onde desejar (eu usei c:memcache), você deverá ter os seguintes arquivos dentro da pasta:
- memcache.exe
- msvcr1.dll
- Abra o terminal do windows =P
- Instale o memcache com o seguinte comando: c:memcachememcache.exe -d install
- Inicialize o serviço com o seguinte comando: c:memcachememcache.exe -d start
Agora com o memcache instalado e iniciado, vamos a configuração do WAMP Server, antes de mais nada é preciso fazer o download da dll do memcache para windows neste endereço: http://pecl4win.php.net/ext.php/php_memcache.dll. Feito isso vai la em c:wampinphpphp5.2.5ext e cole essa dll dentro, feche o WAMP, inicie-o novamente, clique com o botão esquerdo no icone do wamp > php > php extensions > habilite a extensão memcache. Pronto, agora é só fazer um teste com o script postado abaixo e está tudo certo.
// Exemplo extraÃdo do site www.php.net
$memcache = new Memcache;
$memcache->connect("localhost",11211);echo "Server's version: " . $memcache->getVersion() . "n";
$tmp_object = new stdClass;
$tmp_object->str_attr = "test";
$tmp_object->int_attr = 123;
$memcache->set("key",$tmp_object,false,10);
echo "Store data in the cache (data will expire in 10 seconds)n";
echo "Data from the cache:n";
var_dump($memcache->get("key"));
?>
Após isso, está funcionando, mas temos um porém nessa história, por padrão o memcache utiliza o tamanho máximo de cache de 64mb, então caso queira aumentar essa capacidade, abra o regedit, vá em HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesmemcached Server, encontre o item ImagePath e mude seu valor para: ?C:memcachedmemcached.exe? -d runservice -m 512. Pronto!
Bom, feito tudo isso espero ter unificado em português o que muitos sites em ingês dispersam.