답변:
정답은 echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT
예. echo "stats cachedump 15 4" | nc 127.0.0.1 11211
이것은 다음 줄에 출력을 줄 것입니다.
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
참고 : 이것은 문서화되지 않은 명령이며 memcached 팀에서 지원하지 않으며 모든 버전에서 제거 할 수 있습니다. 완전한 참조는 Memcached stats cachedump 명령 이해를 확인하십시오 .
최신 버전 memcached
에는 memcached-tool
펄 스크립트 도 있습니다. 예 : 사용법 :
memcached-tool localhost:11211 dump | less
모든 키와 값을 덤프합니다.
서버에서 키 목록을 덤프하려면 memcdump
/ memdump
도구를 사용하십시오.
memcdump --servers=localhost
모든 오브젝트를 덤프하려면 다음을 수행하십시오.
memcdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'
모든 키 값을 별도의 파일로 덤프하려면 다음을 수행하십시오.
while read -r key; do [ -f "$key" ] || echo "get $key" | nc localhost 11211 > "$key.dump"; done < <(memcdump --server localhost)
키 값을 인쇄하려면 다음 memccat
과 같은 명령 을 사용할 수 있습니다.
memccat CACHE-KEY
Bash 쉘에서 모든 키를 덤프하려면 다음을 시도하십시오.
exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}
다음을 사용하여 단일 항목의 값을 얻는 예는 다음과 같습니다 netcat
.
echo "get 13456_-cache-some_object" | nc 127.0.0.1 11211
apt install libmemcached-tools
했지만 여전히 내 길에 있지 않았습니다 /usr/share/memcached/scripts/memcached-tool localhost:11211 dump
. 우분투 18.
설치 libmemcached-tools
한 다음이 명령을 사용하여 모든 키를 얻을 수 있습니다.
memcdump --server=127.0.0.1
내용을 보려면 특정 키를 요청할 수 있습니다.
memccat --server=127.0.0.1 SOME_KEY
또는 Bash의 키 목록을 반복 할 수 있습니다.
for key in $(memcdump --server=127.0.0.1); do echo ------ $key ------; memccat --server=127.0.0.1 $key; done
localhost
작동하지 않는 것 같으므로 127.0.0.1 (같은 호스트에서 명령을 실행중인 경우)을 사용해야합니다 .