Guia Completo para Instalação e Uso do Memcached no Windows

O Memcached é um sistema de cache de pares chave-valor em memória de alta concorrência. Sua principal função é armazenar em cache resultados de consultas ao banco de dados, conteúdo e outros cálculos demorados na memória do sistema, acelernado assim o tempo de resposta das aplicações web.

Inicialmente desenvolvido como uma aplicação Linux, o Memcached foi posteriormente portado para o ambiente Windows após sua liberação como código aberto. Binários compilados para Windows estão disponíveis para download em repositórios como o do Jellycan e do Northscale. Os links incluem versões para arquiteturas de 32 e 64 bits (x86 e amd64).

A instalação difere significativamente entre as versões. A capacidade de instalar o Memcached como um serviço nativo do Windows foi removida a partir da versão 1.4.5. Portanto, existem dois métodos de instalação.

Instalando o Memcached (versão < 1.4.5)

Para versões anteriores à 1.4.5, o software pode ser instalado como um serviço do Windows.

  1. Extraia o arquivo baixado para um diretório de sua escolha, por exemplo, C:\memcached.
  2. Abra um prompt de comando como Administrador e execute o comando para instalar o serviço: ``` C:\memcached\memcached.exe -d install
  3. Inicie ou pare o serviço com os seguintes comandos: ``` C:\memcached\memcached.exe -d start C:\memcached\memcached.exe -d stop
  4. As configurações, como a memória máxima utilizada, podem ser ajustadas editando o registro do Windows. Navegue até a chave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached e modifique o valor de ImagePath. Para definir 512MB de memória máxima, altere o valor para: ``` "C:\memcached\memcached.exe" -d runservice -m 512
    
    A lista completa de parâmetros pode ser obtida com `C:\memcached\memcached.exe -h`.
    
  5. Para desinstalar o serviço, execute: ``` C:\memcached\memcached.exe -d uninstall
    
    

Instalando o Memcached (versão >= 1.4.5)

A partir da versão 1.4.5, o método de instalação como serviço não está mais disponível. O processo deve ser iniciado manualmente ou configurado através do Agendador de Tarefas do Windows.

  1. Extraia o conteúdo do arquivo para um diretório local.
  2. Para criar uma tarefa agendada que inicie o Memcached automaticamente quando o sistema iniciar, use o comando: ``` schtasks /create /sc onstart /tn memcached /tr "'C:\caminho\para\memcached.exe' -m 512"
    
    Substitua o caminho e os parâmetros conforme necessário. Use `-h` para ver as opções disponíveis.
    
  3. Para remover a tarefa agendada: ``` schtasks /delete /tn memcached
    
    

Usando o Memcached com PHP

Para integrar o Memcached em aplicações PHP, é necessário a extensão php_memcache ou php_memcached.

  1. Verifique se a DLL correspondente (php_memcache.dll) está presente no diretório de extensões do PHP. Se não, faça o download do pacote PECL adequado à sua versão do PHP e arquitteura do sistema.
  2. Habilite a extensão no arquivo php.ini adicionando a linha: ``` extension=php_memcache.dll
  3. Um script de exemplo básico para testar a conexão e operações: ```
    
    

Usando o Memcached com Python

Em Python, a biblioteca cliente mais comum é a python-memcached.

  1. Instale o pacote usando o pip: ``` pip install python-memcached

    
    (O pacote `python3-memcached` é um fork compatível para Python 3).
    
  2. Exemplo de código para demonstrar as operações básicas: ``` import memcache

    Conectar ao servidor local

    mc = mc.Client(['127.0.0.1:11211'], debug=0)

    Armazenar e recuperar valores

    mc.set("nome_app", "MeuAplicativo") valor = mc.get("nome_app") print(f"Valor recuperado: {valor}")

    Operações com chaves numéricas (para incr/decr)

    mc.set("contador_acessos", "0") mc.incr("contador_acessos") mc.incr("contador_acessos") acessos = mc.get("contador_acessos") print(f"Acessos: {acessos}")

    Deletar uma chave

    mc.delete("nome_app")

    
    

Usando o Memcached com Node.js

No ecossistema Node.js, o pacote memcached é amplamente utilizado.

const Memcached = require('memcached');

// Conectar ao servidor
const cliente = new Memcached('127.0.0.1:11211');

// Armazenar um valor com expiração de 1 hora (3600 segundos)
cliente.set('sessao_usuario:abc123', { user: 'joao', ativo: true }, 3600, function(err) {
    if (err) console.error('Erro ao definir:', err);
    console.log('Dados da sessão armazenados.');
});

// Recuperar o valor
cliente.get('sessao_usuario:abc123', function(err, dados) {
    if (err) console.error('Erro ao buscar:', err);
    console.log('Dados recuperados:', dados);
    // Finalizar a conexão após o uso
    cliente.end();
});

Para informações mais detalhadas sobre a API, consulte a documentação oficial do pacote.

Monitoramento e Estatísticas

O Memcached expõe estatísticas de operação através de seu protocolo de linha, acessível via ferramentas como telnet ou nc.

Execute o comando abaixo para conectar ao servidor e visualizar as estatísticas:

telnet 127.0.0.1 11211
stats

Nota: No Windows 10/11, o cliente telnet pode precisar ser habilitado como uma funcionalidade opcional do sistema.

A tabela abaixo descreve os principais campos retornados pelo comando stats:

Nome Tipo Significado
pid 32u ID do processo do servidor
uptime 32u Segundos desde a inicialização
curr_items 32u Número atual de itens armazenados
total_items 32u Total de itens armazenados desde o início
bytes 64u Bytes atualmente usados para armazenamento
cmd_get 64u Total de requisições de leitura (get)
cmd_set 64u Total de requisições de escrita (set)
get_hits 64u Acertos no cache (chave encontrada)
get_misses 64u Falhas no cache (chave não encontrada)
evictions 64u Itens removidos para liberar memória (LRU)
limit_maxbytes 32u Limite máximo de memória configurado

A documentação completa do protocolo pode ser encontrada no repositório oficial do projeto.

Tags: Memcached Windows cache PHP Python

Publicado em 6-23 20:22