App Guader上的Google Guava缓存

时间:2015-04-14 17:01:43

标签: java google-app-engine caching guava

有没有人知道是否有任何理由不在Google App Engine上使用Google Guava缓存库。

https://code.google.com/p/guava-libraries/wiki/CachesExplained

特别使用逐出侦听器。我担心的是缓存不会跨实例复制。

用例将创建一个缓存:

LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
       .maximumSize(1000)
       .expireAfterWrite(10, TimeUnit.MINUTES)
       .removalListener(MY_LISTENER)
       .build();

在发布到http servlet的帖子上,使用缓存和后期帖子,并对删除采取一些操作。我担心应用引擎处理缓存的方式有一些细微差别,以及如何在应用引擎文档中没有提及使用逐出监听器:https://cloud.google.com/appengine/docs/java/memcache/与在Guava Docs中完成的方式相比。

更新

从某些测试来看,似乎google guava缓存在GAE上不起作用 - 并且缓存在事务结束时被驱逐(30秒左右)

提前谢谢。

1 个答案:

答案 0 :(得分:2)

问题就在于这个缓存存储在本地内存中,请记住,GAE实例一直在创建和销毁,并且无法保证用户的请求都是由它们提供的。实例

除非您可以使用共享资源(例如memcache或数据存储区)备份此缓存,否则您运气不佳。