it-swarm.com.de

Inhalt von memcached anzeigen

Gibt es Tools, mit denen Sie untersuchen können, was derzeit in einem zwischengespeicherten Pool zwischengespeichert ist? Nicht viele Grafiken, aber die aktuell gespeicherten Schlüssel/Werte.

37
Tom

Versuchen stats items - d.h.

echo "stats items" | nc 127.0.0.1 11211
10
danlefree

Die richtige Antwort wäre echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT

z.B. echo "stats cachedump 15 4" | nc 127.0.0.1 11211

Dies würde die Ausgabe in folgenden Zeilen ergeben:

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

Hinweis: Dies ist ein undokumentierter Befehl, der vom zwischengespeicherten Team nicht unterstützt wird und in jeder Version entfernt werden kann. Die vollständige Referenz finden Sie unter Grundlegendes zum Befehl cachedump für Memcached-Statistiken .

24
Jagtesh Chadha

memcached-tool

In der aktuellen Version von memcached gibt es auch memcached-tool Perl-Skript, z. Verwendungszweck:

memcached-tool localhost:11211 dump | less

hiermit werden alle Schlüssel und Werte ausgegeben.

memdump

Verwenden Sie das Tool memcdump/memdump, um eine Liste von Schlüsseln von einem Server zu sichern, z.

memcdump --servers=localhost 

So sichern Sie alle Objekte:

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

So speichern Sie alle Schlüsselwerte in separaten Dateien:

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

memccat

Um einen Schlüsselwert zu drucken, können Sie den Befehl memccat verwenden, z.

memccat CACHE-KEY

Bash

Versuchen Sie Folgendes, um alle Schlüssel in Bash Shell zu sichern:

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

netzkatze

Hier ist ein Beispiel, um den Wert eines einzelnen Elements mit netcat zu ermitteln:

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

Python

Siehe: Wie exportiere ich alle Schlüssel und Werte aus mit Python zwischengespeicherten Memc?

12
kenorb

Versuchen Sie es mit dem Befehl telnet, z.

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

Installieren libmemcached-tools und dann können Sie diesen Befehl verwenden, um alle Schlüssel zu erhalten:

memcdump --server=127.0.0.1

Um den Inhalt anzuzeigen, können Sie nach einem bestimmten Schlüssel fragen:

memccat --server=127.0.0.1 SOME_KEY

oder Sie können die Liste der Schlüssel in Bash durchlaufen:

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

Stellen Sie sicher, dass Sie 127.0.0.1 verwenden (wenn Sie den Befehl auf demselben Host ausführen), da localhost nicht zu funktionieren scheint.

6
Tobia

In Basic Memcached glaube ich nicht, dass es eine Möglichkeit gibt, nach Schlüsseln zu suchen, die auf dem Server gespeichert sind. Der einzige Gedanke, den Sie bekommen können, sind Statistiken in Bezug auf Lagerung und gespeicherte Gegenstände.

Einige Anbieter, die memcached-konforme Lösungen entwickelt haben, z. Gear6 , haben jedoch Funktionen hinzugefügt, um das Abfragen zu ermöglichen.

2
Chris