bash
Per ottenere un elenco di chiavi in Bash, attenersi alla seguente procedura.
Innanzitutto, definisci la seguente funzione wrapper per renderla semplice da usare (copia e incolla nella shell):
function memcmd() {
exec {memcache}<>/dev/tcp/localhost/11211
printf "%s\n%s\n" "$*" quit >&${memcache}
cat <&${memcache}
}
Memcached 1.4.31 e versioni successive
È possibile utilizzare il lru_crawler metadump all
comando per scaricare (la maggior parte) dei metadati per (tutti) gli elementi nella cache.
Al contrario cachedump
, non causa gravi problemi di prestazioni e non ha limiti sulla quantità di chiavi che è possibile scaricare.
Esempio di comando utilizzando la funzione precedentemente definita:
memcmd lru_crawler metadump all
Vedi: ReleaseNotes1431 .
Memcached 1.4.30 e precedenti
Ottieni un elenco di lastre utilizzando il comando statistiche articoli , ad esempio:
memcmd stats items
Per ogni classe slub, puoi ottenere un elenco di elementi specificando l'id slub insieme al numero limite ( 0
- illimitato):
memcmd stats cachedump 1 0
memcmd stats cachedump 2 0
memcmd stats cachedump 3 0
memcmd stats cachedump 4 0
...
Nota: è necessario eseguire questa operazione per ciascun server memcached.
Per elencare tutte le chiavi di tutti gli stub, ecco il one-liner (per un server):
for id in $(memcmd stats items | grep -o ":[0-9]\+:" | tr -d : | sort -nu); do
memcmd stats cachedump $id 0
done
Nota: il comando sopra potrebbe causare gravi problemi di prestazioni durante l'accesso agli elementi, quindi non è consigliabile eseguire in diretta.
Appunti:
stats cachedump
esegue il dump di solo HOT_LRU
(IIRC?), che viene gestito da un thread in background quando si verifica l'attività. Ciò significa che con una versione abbastanza nuova abilitata dall'algoritmo 2Q, otterrai una vista istantanea di ciò che è in una delle LRU.
Se vuoi vedere tutto, lru_crawler metadump 1
(o lru_crawler metadump all
) è il nuovo metodo per lo più supportato ufficialmente che scaricherà in modo asincrono tutte le chiavi che vuoi. li toglierai dall'ordine ma colpirà tutti gli LRU e, a meno che tu non stia eliminando / sostituendo gli articoli, più esecuzioni dovrebbero produrre gli stessi risultati.
Fonte: GH-405 .
Relazionato: