Risposte:
La risposta corretta sarebbe echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT
per esempio. echo "stats cachedump 15 4" | nc 127.0.0.1 11211
Ciò darebbe l'output sulle righe di:
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
Nota: si tratta di un comando non documentato che non è supportato dal team memcached e può essere rimosso in qualsiasi versione. Per il riferimento completo, controlla Informazioni sul comando memorizzato nella cache delle statistiche memcached .
Nella versione recente di memcached
c'è anche lo memcached-tool
script perl, ad es. Utilizzo:
memcached-tool localhost:11211 dump | less
che scarica tutte le chiavi e i valori.
Per scaricare un elenco di chiavi da un server, utilizzare memcdump
/ memdump
tool, ad es
memcdump --servers=localhost
Per scaricare tutti gli oggetti:
memcdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'
Per scaricare tutti i valori chiave in file separati:
while read -r key; do [ -f "$key" ] || echo "get $key" | nc localhost 11211 > "$key.dump"; done < <(memcdump --server localhost)
Per stampare un valore chiave, è possibile utilizzare il memccat
comando, ad es
memccat CACHE-KEY
Per scaricare tutte le chiavi nella shell Bash, prova:
exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}
Ecco un esempio per ottenere il valore di un singolo articolo usando netcat
:
echo "get 13456_-cache-some_object" | nc 127.0.0.1 11211
Vedi: Come esportare tutte le chiavi e i valori da memcached con Python?
apt install libmemcached-tools
, ma poi non era ancora sulla mia strada, quindi /usr/share/memcached/scripts/memcached-tool localhost:11211 dump
. Ubuntu 18.
Installa libmemcached-tools
e quindi puoi utilizzare questo comando per ottenere tutte le chiavi:
memcdump --server=127.0.0.1
Per vedere i contenuti, puoi chiedere una chiave specifica:
memccat --server=127.0.0.1 SOME_KEY
oppure puoi scorrere l'elenco delle chiavi in Bash:
for key in $(memcdump --server=127.0.0.1); do echo ------ $key ------; memccat --server=127.0.0.1 $key; done
Assicurati di utilizzare 127.0.0.1 (se stai eseguendo il comando sullo stesso host) perché localhost
non sembra funzionare.
Nel memcached di base non penso che ci sia alcun modo di interrogare le chiavi memorizzate nel server. L'unica cosa che puoi ottenere sono le statistiche relative allo stoccaggio e agli oggetti memorizzati.
Alcuni fornitori che hanno sviluppato soluzioni conformi memcached, ad esempio Gear6 , hanno tuttavia aggiunto funzionalità per consentire l'interrogazione.