2011-09-20 50 views
4

我最近得到了Enyim Memcached,它運行良好。使用庫我可以存儲和檢索沒有問題的項目。檢索緩存中的所有項目

但是,我想知道是否有辦法從緩存中檢索所有項目。 我知道你能夠通過它的鍵檢索項目:

MemcachedClient client = new MemcachedClient() 
    object o = client.Get("key"); 

但我似乎無法看到GetAll()或類似的方法,我失去的東西嗎?

回答

6

我想詳細說一下達順的答案。他是正確的,沒有辦法從標準memcached中獲得所有密鑰,但是還有其他類型的memcached可以讓你通過tap流實現這一點。如果您使用Membase服務器(如果您只使用緩存存儲區,則Membase幾乎只是memcached),或者您可以使用memcached的Membase分支,這裏可以找到https://github.com/membase/memcached。 Membase分支絕對可以安全使用,許多頂級memcached貢獻者爲Membase(現在的Couchbase)工作,並將這個分支的內容返回給主memcached分支。

另一方面,Enyim客戶端不支持tap API,但支持tap的Java,C/C++,python和ruby客戶端。你要做的是創建一個tap dump流,這個流會將所有的鍵值對memcached/Membase發送給你。

2

不,你不能。 Memchached不是爲此目的而設計的(緩存不意味着檢索所有項目,這是毫無意義的)。

+0

它做,如果你想從緩存的項目的列表中刪除單個項目有一個點.... – Deano

+0

它往往是重要的分析緩存獨立之一的存儲和檢索能力的內容。 – ladenedge

+0

雖然接受的答案說我是正確的,任何人都可以解釋爲什麼我會爲此投票嗎? – Dasun

相關問題