memcached의 내용보기


36

현재 memcached 풀 안에 캐시 된 내용을 탐색 할 수있는 도구가 있습니까? 그래프는 많지 않지만 현재 저장된 실제 키 / 값입니다.

답변:


9

시도 stats items-즉

echo "stats items" | nc 127.0.0.1 11211

16
이 질문에 어떻게 대답합니까?! 이것은 서버 통계만을 제공하며 키를 검색하지 않습니다.
Jagtesh Chadha

24

정답은 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 명령 이해를 확인하십시오 .


캐시 덤프는 문서화되지 않은 데이터 양으로 제한되며 1-2MB보다 크지 않으므로 신뢰할 수 없습니다.
John

11

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

파이썬

참조 : 파이썬으로 memcached에서 모든 키와 값을 내보내는 방법은 무엇입니까?


2
이 답변을 통해 실제 memcached 도구 인 memcdump를 찾을 수 있었습니다 . 이 대답을 참조하십시오 stackoverflow.com/a/14491419/720360
mmuller

1
먼저해야 apt install libmemcached-tools했지만 여전히 내 길에 있지 않았습니다 /usr/share/memcached/scripts/memcached-tool localhost:11211 dump. 우분투 18.
카밀 Goudeseune

7

다음 telnet과 같은 명령을 사용해보십시오 .

$ telnet 0 11211
stats
stats items
set key 1 23 8
get key

6

설치 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 (같은 호스트에서 명령을 실행중인 경우)을 사용해야합니다 .


2

기본 memcached에서는 서버에 저장된 키를 쿼리하는 방법이 없다고 생각합니다. 당신이 얻을 수있는 유일한 생각은 저장 및 저장된 항목과 관련된 통계입니다.

그러나 Memcached 호환 솔루션 (예 : Gear6) 을 개발 한 일부 공급 업체는 쿼리를 허용하는 기능을 추가했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.