Google App Engine 上的 Guava 缓存

Google Guava Cache On App Engine

有谁知道是否有任何理由不在 Google App Engine 上使用 Google 番石榴缓存库。

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();

在 post 上到一个 http servlet,使用稍后 post 的缓存,并采取一些删除操作。我担心 App Engine 处理缓存的方式存在一些细微差别,以及如何在 App Engine 文档中没有提及使用驱逐侦听器:https://cloud.google.com/appengine/docs/java/memcache/ 与它在 Guava 文档中的完成方式。

更新:

从一些测试看来 google 番石榴缓存在 GAE 上不起作用 - 缓存在事务结束时被逐出(30 秒左右)

提前致谢。

问题在于此缓存存储在本地内存中,请记住,GAE 实例一直在创建和销毁,因此无法保证来自用户的请求由同一实例提供服务。

除非您可以使用共享资源(如内存缓存或数据存储)备份此缓存,否则您就不走运了。