2013-04-27 34 views
0

我是新來的應用程序引擎。我使用Memcache並在eclipse中運行它。每次運行應用程序時,memcache的值都會重置。而且我沒有舊值Appengine MemCache重置多次運行

MemcacheService memCache= MemcacheServiceFactory.getMemcacheService(); 
memCache.setErrorHandler(ErrorHandlers.getConsistentLogAndContinue(Level.INFO)); 
+0

緩存總是不穩定的。我不明白,你想問什麼。 – 2013-04-27 19:48:49

+0

我認爲Memcache是​​一個存儲值的進程緩存,不管我重新啓動我的應用程序的次數是多少次 – user1389893 2013-04-27 19:52:02

回答

1

如果你的意思,你是在本地運行的GAE開發環境在Eclipse啓動它,然後什麼都經歷是預期的行爲。每次重新啓動開發環境時,將啓動並停止memcached實例。這是一個內存唯一的緩存機制?你期望它做什麼?

+0

當我重新啓動時是否有可能獲得先前的值。其他方面,它看起來像進程內緩存 – user1389893 2013-04-27 19:40:11

+0

它是一個僅內存緩存機制。但是memcache使用不同機器的內存。 – user1389893 2013-04-27 20:09:22

+0

是什麼讓你覺得呢?無論你錯了,gae dev服務器都會在你的機器上運行,並在其中嵌入一個memcached。再次閱讀開發者服務器上的文檔。 – 2013-04-27 20:11:49

0

在GAE開發模式中,memcached被嵌入到你的進程中,所以當你的進程終止時,你也會丟失你的memcached實例。

但是,當您部署在您的Goggle GAE帳戶上時,memcached實例與您的應用無關。實例和緩存值可以在您的應用程序實例重新啓動後存活......但是,memcached實例本身可能會由GAE重新啓動,並且不能保證長時間保存緩存值。

此外,您不能將memcached用作記錄系統...因爲它不是持久性緩存。如果你想要更可靠的memcached實現,你可以使用集成了24/7 memcached兼容實現的Couchbase以供企業級使用。它可以用作記錄系統......例如,它是一個「NoSQL DB」......但它不在GAE中提供。