Câu trả lời:
Câu trả lời đúng sẽ là echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT
ví dụ. echo "stats cachedump 15 4" | nc 127.0.0.1 11211
Điều này sẽ cung cấp đầu ra trên các dòng:
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
Lưu ý: Đây là một lệnh không có giấy tờ không được nhóm memcached hỗ trợ và có thể được gỡ bỏ trong bất kỳ phiên bản nào. Để tham khảo đầy đủ, hãy kiểm tra Tìm hiểu lệnh bộ nhớ cache thống kê Memcached .
Trong phiên bản gần đây memcached
cũng có memcached-tool
tập lệnh perl, ví dụ: cách sử dụng:
memcached-tool localhost:11211 dump | less
mà bỏ tất cả các khóa và giá trị.
Để kết xuất danh sách các khóa từ máy chủ, hãy sử dụng memcdump
/ memdump
tool, vd
memcdump --servers=localhost
Để đổ tất cả các đối tượng:
memcdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'
Để kết xuất tất cả các giá trị chính vào các tệp riêng biệt:
while read -r key; do [ -f "$key" ] || echo "get $key" | nc localhost 11211 > "$key.dump"; done < <(memcdump --server localhost)
Để in một giá trị khóa, bạn có thể sử dụng memccat
lệnh, vd
memccat CACHE-KEY
Để đổ tất cả các khóa trong Bash shell, hãy thử:
exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}
Dưới đây là ví dụ để nhận giá trị của một mục bằng cách sử dụng netcat
:
echo "get 13456_-cache-some_object" | nc 127.0.0.1 11211
Xem: Làm cách nào để xuất tất cả các khóa và giá trị từ memcached bằng Python?
apt install libmemcached-tools
, nhưng sau đó nó vẫn không nằm trên con đường của tôi /usr/share/memcached/scripts/memcached-tool localhost:11211 dump
. Ubuntu 18.
Cài đặt libmemcached-tools
và sau đó bạn có thể sử dụng lệnh này để nhận tất cả các phím:
memcdump --server=127.0.0.1
Để xem nội dung, bạn có thể yêu cầu một khóa cụ thể:
memccat --server=127.0.0.1 SOME_KEY
hoặc bạn có thể lặp qua danh sách các khóa trong Bash:
for key in $(memcdump --server=127.0.0.1); do echo ------ $key ------; memccat --server=127.0.0.1 $key; done
Đảm bảo sử dụng 127.0.0.1 (nếu bạn đang chạy lệnh trên cùng một máy chủ) vì localhost
dường như không hoạt động.
Trong memcached cơ bản tôi không nghĩ có bất kỳ cách truy vấn nào cho các khóa được lưu trữ trong máy chủ. Suy nghĩ duy nhất bạn có thể nhận được là số liệu thống kê liên quan đến lưu trữ và các mặt hàng được lưu trữ.
Một số nhà cung cấp đã phát triển các giải pháp tuân thủ memcached, ví dụ Gear6 , tuy nhiên đã thêm chức năng để cho phép truy vấn.