Jer*_*way 15 java google-app-engine memcached caching
我是Google App Engine的新用户,过去几天我花了很多时间使用GAE的Memcache构建应用程序来存储数据.根据我的初步调查结果,似乎GAE的Memcache不是全球性的?
让我进一步解释.我知道GAE的不同请求可能由不同的实例提供(实际上这似乎经常发生).正是出于这个原因,我使用Memcache来存储一些共享数据,而不是静态Map.我想(也许是错误的)这是使用分布式缓存的重点,以便任何节点都可以访问数据.
另一个明确的可能性是我做错了什么.我已经尝试了JCache和低级Memcache API(我正在编写Java,而不是Python).这是我正在做的检索缓存:
MemcacheService cache = MemcacheServiceFactory.getMemcacheService();
Run Code Online (Sandbox Code Playgroud)
部署之后,这是我检查的内容(通过我的应用程序日志):
现在我也知道无法保证Memcache中的数据有多长,但从我的发现来看,当diff实例尝试访问缓存时,数据似乎消失了.这似乎违背了分布式全局缓存的整个概念吗?
希望有人能够确切地澄清这应该如何表现.如果Memcache不是全局的,并且每个服务器实例都有自己的副本,那么为什么甚至使用Memcache呢?我可以简单地使用静态HashMap(我最初做过,直到我意识到它不会是全局的,因为不同的实例服务于我的请求).
救命?