Experimente stats items
- por exemplo,
echo "stats items" | nc 127.0.0.1 11211
Existe alguma ferramenta para explorar o que está atualmente em cache dentro de um pool de memcached? Não há muitos gráficos, mas a chave / valores reais armazenados atualmente.
A resposta correta seria echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT
por exemplo. echo "stats cachedump 15 4" | nc 127.0.0.1 11211
Isso daria a saída nas linhas de:
ITEM cache_path-comments%2Fpage%2F2 [2211 b; 1337195558 s]
ITEM cache_path-comments%2Fpage%2F5 [2205 b; 1337195558 s]
ITEM cache_path-comments%2Fpage%2F6 [2179 b; 1337195558 s]
ITEM cache_path-comments [2164 b; 1337195558 s]
END
Nota: Este é um comando não documentado que não é suportado pela equipe memcached e pode ser removido em qualquer versão. Para obter a referência completa, consulte Noções básicas sobre o comando cachedump de estatísticas do Memcached .
Na versão recente de memcached
, há também o script memcached-tool
perl, por exemplo, uso:
memcached-tool localhost:11211 dump | less
que despeja todas as chaves e valores.
Para despejar uma lista de chaves de um servidor, use a ferramenta memcdump
/ memdump
, por exemplo,
memcdump --servers=localhost
Para despejar todos os objetos:
memcdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'
Para despejar todos os valores-chave em arquivos separados:
while read -r key; do [ -f "$key" ] || echo "get $key" | nc localhost 11211 > "$key.dump"; done < <(memcdump --server localhost)
Para imprimir um valor de chave, você pode usar o comando memccat
, por exemplo,
memccat CACHE-KEY
Para despejar todas as chaves no shell Bash, tente:
exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}
Aqui está um exemplo para obter o valor do item único usando netcat
:
echo "get 13456_-cache-some_object" | nc 127.0.0.1 11211
Veja: Como exportar todas as chaves e valores do memcached com o Python?
Instale libmemcached-tools
e, em seguida, você pode usar este comando para obter todas as chaves:
memcdump --server=127.0.0.1
Para ver o conteúdo, você pode solicitar uma chave específica:
memccat --server=127.0.0.1 SOME_KEY
ou você pode percorrer a lista de chaves no Bash:
for key in $(memcdump --server=127.0.0.1); do echo ------ $key ------; memccat --server=127.0.0.1 $key; done
Certifique-se de usar 127.0.0.1 (se você estiver executando o comando no mesmo host) porque localhost
parece não funcionar.
Tente usar o comando telnet
, por exemplo:
$ telnet 0 11211
stats
stats items
set key 1 23 8
get key
No memcached básico, não creio que exista uma maneira de consultar as chaves armazenadas no servidor. O único pensamento que você pode obter é estatísticas relacionadas ao armazenamento e itens armazenados.
Alguns fornecedores que desenvolveram soluções compatíveis com memcached, por exemplo O Gear6 , no entanto, adicionou funcionalidade para permitir a consulta.