Jawaban:
Jawaban yang benar adalah echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT
misalnya. echo "stats cachedump 15 4" | nc 127.0.0.1 11211
Ini akan memberikan output pada baris:
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
Catatan: Ini adalah perintah tidak berdokumen yang tidak didukung oleh tim memcached dan dapat dihapus dalam versi apa pun. Untuk referensi lengkap, lihat Memahami statistik Memcached statistik cachedump perintah .
Dalam versi terbaru memcached
ada juga memcached-tool
skrip perl, misalnya penggunaan:
memcached-tool localhost:11211 dump | less
yang membuang semua kunci dan nilai.
Untuk membuang daftar kunci dari server, gunakan memcdump
/ memdump
alat, mis
memcdump --servers=localhost
Untuk membuang semua objek:
memcdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'
Untuk membuang semua nilai kunci ke file terpisah:
while read -r key; do [ -f "$key" ] || echo "get $key" | nc localhost 11211 > "$key.dump"; done < <(memcdump --server localhost)
Untuk mencetak nilai kunci, Anda dapat menggunakan memccat
perintah, mis
memccat CACHE-KEY
Untuk membuang semua kunci di Bash shell, coba:
exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}
Berikut adalah contoh untuk mendapatkan nilai dari satu item menggunakan netcat
:
echo "get 13456_-cache-some_object" | nc 127.0.0.1 11211
Lihat: Bagaimana cara mengekspor semua kunci dan nilai dari memcached dengan Python?
apt install libmemcached-tools
, tetapi kemudian itu masih belum di jalan saya, jadi /usr/share/memcached/scripts/memcached-tool localhost:11211 dump
. Ubuntu 18.
Instal libmemcached-tools
dan kemudian Anda dapat menggunakan perintah ini untuk mendapatkan semua kunci:
memcdump --server=127.0.0.1
Untuk melihat kontennya, Anda dapat meminta kunci tertentu:
memccat --server=127.0.0.1 SOME_KEY
atau Anda dapat mengulang daftar kunci di Bash:
for key in $(memcdump --server=127.0.0.1); do echo ------ $key ------; memccat --server=127.0.0.1 $key; done
Pastikan untuk menggunakan 127.0.0.1 (jika Anda menjalankan perintah pada host yang sama) karena localhost
sepertinya tidak berfungsi.
Dalam memcached dasar saya tidak berpikir ada cara untuk menanyakan kunci yang disimpan di server. Satu-satunya pemikiran yang bisa Anda dapatkan adalah statistik yang terkait dengan penyimpanan dan penyimpanan barang.
Beberapa vendor yang telah mengembangkan solusi yang sesuai memcached, misalnya Gear6 , telah menambahkan fungsionalitas untuk memungkinkan permintaan.