10 KiB

Memcache Commands

{{#include ../../banners/hacktricks-training.md}}

Commands Cheat-Sheet

From https://lzone.de/cheat-sheet/memcached

Obsługiwane komendy (oficjalne i niektóre nieoficjalne) są udokumentowane w dokumencie doc/protocol.txt.

Niestety opis składni nie jest zbyt jasny, a prosta komenda pomocy wylistowująca istniejące komendy byłaby znacznie lepsza. Oto przegląd komend, które można znaleźć w source (stan na 19.08.2016):

Command Description Example
get Odczytuje wartość get mykey
set Ustawia klucz bezwarunkowo

set mykey

Upewnij się, że używasz \r\n jako znaków nowej linii podczas korzystania z narzędzi CLI Unix. Na przykład

printf "set mykey 0 60 4\r\ndata\r\n"
nc localhost 11211

add Dodaje nowy klucz add newkey 0 60 5
replace Nadpisuje istniejący klucz replace key 0 60 5
append Dodaje dane do istniejącego klucza append key 0 60 15
prepend Dodaje dane przed istniejącym kluczem prepend key 0 60 15
incr Zwiększa wartość klucza numerycznego o podaną liczbę incr mykey 2
decr Zmniejsza wartość klucza numerycznego o podaną liczbę decr mykey 5
delete Usuwa istniejący klucz delete mykey
flush_all Natychmiast unieważnia wszystkie elementy flush_all
flush_all Unieważnia wszystkie elementy w n sekundach flush_all 900
stats Wyświetla ogólne statystyki stats
Wyświetla statystyki pamięci stats slabs
Wyświetla statystyki alokacji na wyższym poziomie stats malloc
Wyświetla informacje o elementach stats items
stats detail
stats sizes
Resetuje liczniki statystyk stats reset
lru_crawler metadump Zrzuca (większość) metadanych dla (wszystkich) elementów w pamięci podręcznej lru_crawler metadump all
version Wyświetla wersję serwera. version
verbosity Zwiększa poziom logowania verbosity
quit Kończy sesję quit

Traffic Statistics

Możesz zapytać o aktualne statystyki ruchu, używając komendy

stats

Otrzymasz listę, która pokazuje liczbę połączeń, bajtów w/na zewnątrz i wiele więcej.

Przykładowy wynik:

STAT pid 14868
STAT uptime 175931
STAT time 1220540125
STAT version 1.2.2
STAT pointer_size 32
STAT rusage_user 620.299700
STAT rusage_system 1545.703017
STAT curr_items 228
STAT total_items 779
STAT bytes 15525
STAT curr_connections 92
STAT total_connections 1740
STAT connection_structures 165
STAT cmd_get 7411
STAT cmd_set 28445156
STAT get_hits 5183
STAT get_misses 2228
STAT evictions 0
STAT bytes_read 2112768087
STAT bytes_written 1000038245
STAT limit_maxbytes 52428800
STAT threads 1
END

Statystyki pamięci

Możesz zapytać o bieżące statystyki pamięci, używając

stats slabs

I'm ready to assist you with the translation. Please provide the text you would like me to translate.

STAT 1:chunk_size 80
STAT 1:chunks_per_page 13107
STAT 1:total_pages 1
STAT 1:total_chunks 13107
STAT 1:used_chunks 13106
STAT 1:free_chunks 1
STAT 1:free_chunks_end 12886
STAT 2:chunk_size 100
STAT 2:chunks_per_page 10485
STAT 2:total_pages 1
STAT 2:total_chunks 10485
STAT 2:used_chunks 10484
STAT 2:free_chunks 1
STAT 2:free_chunks_end 10477
[...]
STAT active_slabs 3
STAT total_malloced 3145436
END

Jeśli nie jesteś pewien, czy masz wystarczająco pamięci dla swojej instancji memcached, zawsze zwracaj uwagę na liczniki „evictions” podawane przez polecenie „stats”. Jeśli masz wystarczająco pamięci dla instancji, licznik „evictions” powinien wynosić 0 lub przynajmniej nie powinien rosnąć.

Jakie klucze są używane?

Nie ma wbudowanej funkcji, aby bezpośrednio określić bieżący zestaw kluczy. Możesz jednak użyć

stats items

komenda do określenia, ile kluczy istnieje.

stats items
STAT items:1:number 220
STAT items:1:age 83095
STAT items:2:number 7
STAT items:2:age 1405
[...]
END

To przynajmniej pomaga zobaczyć, czy jakiekolwiek klucze są używane. Aby wyeksportować nazwy kluczy z skryptu PHP, który już uzyskuje dostęp do memcache, możesz użyć kodu PHP z 100days.de.

{{#include ../../banners/hacktricks-training.md}}