2011-11-11 20 views
1

我使用memcache來存儲json,它正在工作。但問題是,高速緩存的大小增長,如果我致電上述許多倍線:在AppEngine上添加功能Memcache

memcache.Client.add(memcache.Client(),"searchindex",json) 

所以我看着memcache的觀衆和內容仍然是相同的,因爲即時通訊使用密鑰上已有緩存。但是,即使緩存的大小繼續增加。

回答

5

首先,這是調用實例方法的一種非常奇怪的方式。通常你會做到這一點:

memcache.Client().add("searchindex", json) 

或者乾脆:

memcache.add("searchindex", json) 

由於add不會覆蓋已經存在於緩存中的關鍵,稱這是一再應該對你的應用程序的行爲沒有任何影響。

無論這些調用是否增加緩存大小都不應該成爲問題。 Memcache旨在根據最少使用算法使應用程序所需的內存可用。來自惰性的垃圾回憶應該首先應該被驅逐出add

+1

我擔心memcache大小的增加,因爲我在appengine上收費。我無法避免浪費空間嗎? – user1042043

+0

你在什麼意義上爲內存收費?例如,您需要付費幾個小時,並且實例具有固定數量的內存。如果內存不足,memcache應該開始清除過時的數據並將內存轉回給應用程序。我不明白這會如何導致你被收取更多費用。 –

+1

您不收取Memcache費用。 –