2011-12-07 11 views
7

Zainstalowałem memcache, a teraz jak naprawdę wyświetlić dane w memcache?Jak wyświetlić dane w memcache?

Czy jest jakiś sposób, aby zobaczyć dane znajdujące się w pamięci podręcznej wewnątrz memcache?

Skąd wiadomo, czy w pamięci memcache są przechowywane dane?

Uwaga: Nie chcę pisać żadnego programu, aby zobaczyć dane wewnątrz memcache. Zasadniczo serwer memcache jest już zainstalowany w moim środowisku i również buforuje dane. Ale chciałbym się dowiedzieć, czy są jakieś programy narzędziowe, które pokażą buforowane dane wewnątrz memcache lub czy jest jakieś polecenie, które pokaże mi dotychczas buforowane dane.

+0

Na początek trzeba Java oparte memcached klienta; zobacz http://stackoverflow.com/questions/731738/java-memcached-client –

+0

Czy masz na myśli, że mogę używać klienta do przeglądania buforowanych danych wewnątrz memcache? – Mike

+0

Klient wydaje mi się bezużyteczny, jeśli nie można go użyć do tego celu. Proponuję, abyś zbadał, a następnie opublikuj nowe pytanie, gdy korzystasz z klienta, jeśli nadal będziesz mieć problemy. –

Odpowiedz

8

Nie ma sposobu, aby uzyskać memcached do zgłaszania, które klucze posiada. Uważam, że był to wybór projektu, który miałby negatywny wpływ na wyniki.

Można jednak użyć dowolnej aplikacji klienckiej telnet do podłączenia serwera memcached i wpisywania poleceń. Robi to, aby uzyskać lub ustawić określony klucz.

Przykładowo

stats 

czyli

get MY_KEY 
6

zrzucić listę kluczy z serwera, należy memdump narzędzia (czasami memcdump), np

memdump --servers=localhost 

Aby uzyskać wartość pozycji, użyj netcat:

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

lub w bash:

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

Aby zrzucić wszystkie obiekty:

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

lub w bash:

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

Plik binarny może nazywać się 'memcdump' zamiast' memdump' w twojej dystrybucji. –