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.
Réponses
Trop de publicités?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.
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?
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.
- Réponses précédentes
- Plus de réponses