2010-04-01 11 views
8

में विशेष आइटम के लिए समाप्ति का समय कैसे मिल सकता है रनटाइम में, मैं memcached में कुछ आइटमों के बारे में समय सीमा समाप्त करने के बारे में जानकारी प्राप्त करना चाहता हूं। मुझे memcached पर कोई संबंधित इंटरफ़ेस नहीं मिला। क्या मैं यह कर सकता हूं? कुछ की तरह: mc.get_expire_time ('कुंजी')मुझे memcached

धन्यवाद

+0

यह किसी भी प्रकार की भाषा या lib ऐसा करने पर पाइथन तक सीमित नहीं है। इस पृष्ठ पर – maguschen

+0

पायथन एपीआई: http://code.google.com/p/memcached/wiki/Clients –

उत्तर

5

मेम्कैश प्रोटोकॉल (दोनों text और binary) niether get और न ही gets वापसी समाप्ति समय के अनुसार। और इसे पुनर्प्राप्त करने के लिए कोई और तरीका नहीं है। लेकिन सुनिश्चित करें कि आप set/add पर इसे पुनर्प्राप्त करने के लिए अब जब आप स्टोर करते हैं, तो आप समय सीमा के साथ मूल्य में समाप्ति समय पैक कर सकते हैं।

+0

आपके उत्तर, डेनिस के लिए धन्यवाद। – maguschen

11

पायथन memcache API ऐसी कार्यक्षमताओं प्रदान नहीं करता है। हालांकि आप सभी चाबियों और समाप्ति समय को डंप करने के लिए memcached में टेलनेट कर सकते हैं।

> telnet localhost 11211 

stats items अपने डेटा वाले स्लैब दिखाएं।

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

फिर कुंजी और समाप्ति समय देखने के लिए stats cachedump slab_id count का उपयोग करें। सभी चाबियाँ पुनर्प्राप्त करने के लिए 0 पर गिनें सेट करें।

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

परेशान, यह जानकारी केवल स्लैब आंकड़ों में प्रदान की जाती है। इस से शुरू करें:

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

और स्लैब ('cachedump' के बाद पहले नंबर) को बढ़ा देते हैं जब तक आप उचित स्लैब पाते हैं। एक बार जब आप एक परिणाम मिलता है, यह रूप

ITEM my_key [2 b; 1389767076 s] 

पिछले संख्या में (इस मामले में 1389767076) का हो जाएगा unixtime जब कुंजी समाप्त हो जाएगा है। आप इस संख्या को पाइथन के time.localtime() या Wolfram Alpha का उपयोग करके ऑन-द-फ्लाई के साथ कुछ मानव-पठनीय में परिवर्तित कर सकते हैं।

+0

यहां कुछ कोड है http://codereview.stackexchange.com/questions/636/review-request-python-class-w-telnet-interface-to-memcached जो इस दृष्टिकोण का पालन करने के लिए आवश्यक लगभग हर चीज का ख्याल रखता है। –

संबंधित मुद्दे