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.
- Extraia o arquivo baixado para um diretório de sua escolha, por exemplo,
C:\memcached. - Abra um prompt de comando como Administrador e execute o comando para instalar o serviço: ```
C:\memcached\memcached.exe -d install
- Inicie ou pare o serviço com os seguintes comandos: ```
C:\memcached\memcached.exe -d start
C:\memcached\memcached.exe -d stop
- 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\memcachede modifique o valor deImagePath. Para definir 512MB de memória máxima, altere o valor para: ``` "C:\memcached\memcached.exe" -d runservice -m 512A lista completa de parâmetros pode ser obtida com `C:\memcached\memcached.exe -h`. - 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.
- Extraia o conteúdo do arquivo para um diretório local.
- 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. - 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.
- 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. - Habilite a extensão no arquivo
php.iniadicionando a linha: ``` extension=php_memcache.dll - 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.
-
Instale o pacote usando o pip: ``` pip install python-memcached
(O pacote `python3-memcached` é um fork compatível para Python 3). -
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.