java - App Engine 上的 Google Guava 缓存

标签 java google-app-engine caching guava

有谁知道是否有任何理由不在 Google App Engine 上使用 Google Guava Cache 库。

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 文档中的完成方式相比。

更新:

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

提前致谢。

最佳答案

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

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

关于java - App Engine 上的 Google Guava 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29633271/

相关文章:

caching - Laravel 发送无缓存 header

php - 如何检测和调试陈旧的缓存条目?

java - 当我想加载 ListView 时,Android ArrayAdapter 崩溃

java - 在 Java 应用程序中使用 google 登录网站

google-app-engine - Google App Engine 灵活环境、自定义运行时、一般新手问题

android - 我们如何在android中使用youtube api将视频上传到特定用户帐户

java - 有没有办法在 Beam 的 ParDo 转换中创建 SpecificRecord 列表以写入 Parquet 文件?

java - 带有 rtl 布局方向的 api 17 和 18 的 Tablayout 问题

java - 使用 GAE/Arquillian 运行 Servlet 测试时出错

Javascript清除本地数据