2013-10-16 48 views
1

我們目前正在使用AppEngine的memcache來存儲會話信息(會話令牌)並緩存一些HTML數據。大多數情況下,我們的整體memcache使用率都低於1 MB。如何防止AppEngine memcache刷新

幾分鐘後我們如何防止緩存刷新(今天早上我們有一個40分鐘後只有25 KB)。昨天(2013-10-15 21:30 UTC - 2013-10-15 21:45)我們有2到7秒鐘的時間內刷新(低於20 KB的數據)?

回答

4

使用默認的空閒memcache,您的應用程序memcache數據與其他AppEngine應用程序的數據一起存儲,所以如果其他應用程序導致可用內存填滿,那麼您的數據可能會像他們的(見https://developers.google.com/appengine/docs/adminconsole/memcache)。因此,您的應用程序不應期望緩存的值始終可用。

但是,您可以將應用程序配置爲使用專用的內存緩存(在管理控制檯的應用程序設置下)。這爲您的應用程序專用內存專用,但每GB每小時0.12美元。

+0

問題是退房here,即dedeciated內存緩存是一個預覽功能(所以沒有SLA等)和(即1051年的$該專用內存緩存存儲的最低金額爲1 GB ,這是我們目前花費在所有AppEngine使用上的兩倍多)。我至少會期望,共享內存緩存應該在幾個小時內保持10MB(就像過去一樣)。 –

+1

您的問題可能與昨天推出的AppEngine v1.8.6有關(請參閱https://code.google.com/p/googleappengine/wiki/SdkReleaseNotes)。可能需要一些時間來解決問題。 – IanGSY

+0

但是,至少在我們的登臺服務器(一個應用程序中,當前帳單被禁用),刷新仍然發生在不到1小時(緩存中只有25 KB數據) –

0

您應該嘗試將此數據持久存儲在數據存儲上,並使用memcache來獲取查詢結果,或者如果不在memcache中則將其設置。我已經讀了很多關於'強制'memcache執行不同於它的設計,但事實是,當你要求get時,你不可能100%確定你會找到數據。

我試過的所有會話處理程序都提供令牌存儲到用戶模型中,for example。 您可以擴展此模型或創建另一個模型來存儲HTML。

使用的@webapp2.cached_property