48 votes

Afficher le contenu de memcached

Y a-t-il des outils pour explorer ce qui est actuellement mis en cache à l'intérieur d'un pool memcached? Pas tellement des graphiques, mais les clés/valeurs actuellement stockées.

26voto

Jagtesh Chadha Points 330

La réponse correcte serait echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT

par exemple echo "stats cachedump 15 4" | nc 127.0.0.1 11211

Cela donnerait une sortie du type:

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

Remarque: Il s'agit d'une commande non documentée qui n'est pas prise en charge par l'équipe de memcached et peut être supprimée dans n'importe quelle version. Pour une référence complète, consultez Understanding Memcached stats cachedump command.

18voto

Zafar Points 241

memcached-tool

Dans la version récente de memcached, il existe également le script perl memcached-tool, par exemple:

memcached-tool localhost:11211 dump | less

qui affiche toutes les clés et valeurs.

memdump

Pour décharger une liste de clés depuis un serveur, utilisez l'outil memcdump/memdump, par exemple:

memcdump --servers=localhost 

Pour décharger tous les objets:

memcdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'

Pour décharger toutes les valeurs de clé dans des fichiers séparés:

while read -r key; do [ -f "$key" ] || echo "get $key" | nc localhost 11211 > "$key.dump"; done < <(memcdump --server localhost)

memccat

Pour afficher une valeur de clé, vous pouvez utiliser la commande memccat, par exemple:

memccat CACHE-KEY

Bash

Pour décharger toutes les clés dans un shell Bash, essayez:

exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}

netcat

Voici un exemple pour obtenir la valeur d'un seul élément en utilisant netcat:

echo "get 13456_-cache-some_object" | nc 127.0.0.1 11211

Python

Voir: Comment exporter toutes les clés et valeurs de memcached avec Python?

12voto

Rory Points 51

Essayer stats items - c'est-à-dire

echo "stats items" | nc 127.0.0.1 11211

8voto

silviud Points 2667

Essayez d'utiliser la commande telnet, par exemple :

$ telnet 0 11211
stats
stats items
set key 1 23 8
get key

7voto

Tobia Points 1083

Installez libmemcached-tools et vous pourrez utiliser cette commande pour obtenir toutes les clés :

memcdump --server=127.0.0.1

Pour voir le contenu, vous pouvez demander une clé spécifique :

memccat --server=127.0.0.1 SOME_KEY

ou vous pouvez parcourir la liste des clés en Bash :

for key in $(memcdump --server=127.0.0.1); do echo ------ $key ------; memccat --server=127.0.0.1 $key; done

Assurez-vous d'utiliser 127.0.0.1 (si vous exécutez la commande sur le même hôte) car localhost ne semble pas fonctionner.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X