2013-10-08 38 views
1

到期時間隨着django.core.cache.backends.locmem.LocMemCache這工作:如何從緩存

key = cache.make_key('foo') 
cache.validate_key(key) 
t = cache._expire_info.get(key) 

但它與django.core.cache.backends.memcached.MemcachedCache打破

我得到錯誤:'MemcachedCache' 對象有 '_expire_info'

沒有屬性是否有一個通用或memcached的-SP特定的方式來獲得指定密鑰的到期時間?

回答

2

不幸的是,這是不可能的。當您使用LocMemCache時,Django自己管理密鑰及其到期日期,因此信息可用。另一方面,當你使用memcached時,Django不會跟蹤密鑰。

這個信息也不是通過mamcached Python API可用的,所以如果你想訪問這些信息,你幾乎必須自己跟蹤它(例如,爲每個密鑰保存一個額外字典中的過期日期,每當你將某些東西保存到memcached)。

+0

如果使用locMemCache會怎麼樣? –

+0

@AustinA在問題本身中有一個locMemCache的例子。 –

2

有點過時的答案,但我會爲社區的利益發布。

我最近發現一個Python庫檢索這在我的情況下做的伎倆內存緩存服務器的信息:

https://github.com/ezubillaga/python-memcached-stats

(這是從原來的庫叉與Python 3的支持)

該庫沒有依賴關係,只是一個帶有幾行代碼的單個python文件,所以它變成了一個非常簡潔的解決方案,用於解決我的問題。 key_details方法返回每個服務器板上所有鍵的列表,包括每個鍵的大小和到期日期。