현재 memcached 풀 안에 캐시 된 내용을 탐색 할 수있는 도구가 있습니까? 그래프는 많지 않지만 현재 저장된 실제 키 / 값입니다.
답변
시도 stats items
-즉
echo "stats items" | nc 127.0.0.1 11211
답변
정답은 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
에는 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
파이썬
답변
다음 telnet
과 같은 명령을 사용해보십시오 .
$ telnet 0 11211
stats
stats items
set key 1 23 8
get key
답변
설치 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 (같은 호스트에서 명령을 실행중인 경우)을 사용해야합니다 .
답변
기본 memcached에서는 서버에 저장된 키를 쿼리하는 방법이 없다고 생각합니다. 당신이 얻을 수있는 유일한 생각은 저장 및 저장된 항목과 관련된 통계입니다.
그러나 Memcached 호환 솔루션 (예 : Gear6) 을 개발 한 일부 공급 업체는 쿼리를 허용하는 기능을 추가했습니다.