2010-04-01 2 views
8

런타임에 memcached의 일부 항목에 대한 만료 시간 정보를 검색하려고합니다. memcached에서 관련 인터페이스를 찾지 못했습니다. 내가 할 수 있을까? 같은 : mc.get_expire_time ('키') memcached에서 특정 항목의 만료 시간을 얻는 방법

은 memcache에 프로토콜 (모두 textbinary) niether getgets 반환 만료 시간에 따라 당신에게

+0

파이썬에 국한되지 않습니다. 어떤 종류의 언어 나 lib가 있다면 가능합니다. – maguschen

+0

이 페이지의 Python API는 http://code.google.com/p/memcached/wiki/Clients –

답변

5

감사드립니다. 그리고 그것을 검색 할 다른 방법은 없습니다. 그러나 당신이 set/add 검색 할 수있게 지금 당신이 저장하는 것과 함께 값으로 만료 시간을 압축 할 수 있는지.

+0

답변 해 주셔서 감사합니다. Denis. – maguschen

11

파이썬 memcache API는 이러한 기능을 제공하지 않습니다. 그러나 memcached에 텔넷하여 모든 키와 만료 시간을 덤프 할 수 있습니다.

> telnet localhost 11211 

stats items 데이터가 포함 된 슬라브를 보여줍니다.

stats items 
STAT items:12:number 1108 
... 
END 

그런 다음 키와 만료 시간을 볼 수 stats cachedump slab_id count를 사용합니다. count를 0으로 설정하면 모든 키를 검색 할 수 있습니다.

stats cachedump 12 1 
ITEM abc [100 b; 1528336485 s] 
END 
5

annoyingly이 정보는 슬랩 통계에서만 제공되는 것 같습니다.

[$]> (sleep 1; echo "stats cachedump 1 0"; sleep 1; echo "quit";) | telnet localhost 11211 | grep 'my_key' 

을하고 적절한 슬래브를 찾을 때까지 슬래브 ('cachedump'후 첫 번호) 증가 :이 시작합니다. 당신이 결과를 얻을되면, 양식 (이 경우 1389767076)

ITEM my_key [2 b; 1389767076 s] 

마지막 번호의 수 있습니다하면 키가 만료됩니다 unixtime입니다. 이 숫자를 Python의 time.localtime() 또는 Wolfram Alpha을 사용하여 직접 읽을 수있는 것으로 변환 할 수 있습니다.

+0

일부 코드는 http://codereview.stackexchange.com/questions/636/review-request-python-class-w-telnet-interface-to-memcached에 있습니다.이 코드는이 접근 방법을 따르는 데 필요한 거의 모든 것을 처리합니다. –

관련 문제