Respuestas:
La respuesta correcta sería echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT
p.ej. echo "stats cachedump 15 4" | nc 127.0.0.1 11211
Esto daría la salida en las líneas 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 es un comando no documentado que no es compatible con el equipo de memcached y se puede eliminar en cualquier versión. Para obtener la referencia completa, consulte el comando Comprender las estadísticas de Memcached cachedump .
En la versión reciente de memcached
también hay un memcached-tool
script perl, por ejemplo, uso:
memcached-tool localhost:11211 dump | less
que vuelca todas las claves y valores.
Para volcar una lista de claves de un servidor, use memcdump
/ memdump
tool, por ej.
memcdump --servers=localhost
Para volcar todos los objetos:
memcdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'
Para volcar todos los valores clave en archivos separados:
while read -r key; do [ -f "$key" ] || echo "get $key" | nc localhost 11211 > "$key.dump"; done < <(memcdump --server localhost)
Para imprimir un valor clave, puede usar el memccat
comando, p. Ej.
memccat CACHE-KEY
Para volcar todas las claves en el shell Bash, intente:
exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}
Aquí hay un ejemplo para obtener el valor de un solo artículo usando netcat
:
echo "get 13456_-cache-some_object" | nc 127.0.0.1 11211
Ver: ¿Cómo exportar todas las claves y valores de memcached con Python?
apt install libmemcached-tools
, pero luego todavía no estaba en mi camino, así que /usr/share/memcached/scripts/memcached-tool localhost:11211 dump
. Ubuntu 18.
Instale libmemcached-tools
y luego puede usar este comando para obtener todas las claves:
memcdump --server=127.0.0.1
Para ver el contenido, puede solicitar una clave específica:
memccat --server=127.0.0.1 SOME_KEY
o puede recorrer la lista de teclas en Bash:
for key in $(memcdump --server=127.0.0.1); do echo ------ $key ------; memccat --server=127.0.0.1 $key; done
Asegúrese de usar 127.0.0.1 (si está ejecutando el comando en el mismo host) porque localhost
no parece funcionar.
En memcached básico, no creo que haya ninguna forma de consultar las claves almacenadas en el servidor. Lo único que puede obtener es estadísticas relacionadas con el almacenamiento y los elementos almacenados.
Sin embargo, algunos proveedores que han desarrollado soluciones compatibles con Memcached , por ejemplo , Gear6 , han agregado funcionalidad para permitir consultas.