如何在GAE中处理缓存和数据存储同步

时间:2012-08-20 21:44:30

标签: google-app-engine caching google-cloud-datastore

我正在编写一个小型的appengine应用程序,我想开始使用数据存储区 我的应用程序有一些用户,每个用户都是一个复杂的JAVA类。 用户可能会在它们之间交换一些“点”对象,因此我需要数据快速可用。

我的问题很通用:
我该如何处理数据缓存? 将数据完全存储在数据存储区中并在每次调用中获取数据在运行时听起来很慢 另一方面,将数据保存在静态JAVA类中听起来很棘手,因为服务器不时会重置并且数据被删除。
如果我有一个主循环,就像在常规控制台应用程序中一样,我可能会在一天的预定时间内每天两次保存数据三次。
我应该如何管理我的代码,以便它不时地保存数据存储区中的状态,这样就不会丢失任何数据。

2 个答案:

答案 0 :(得分:0)

如果写操作次数少于读操作, 用memcache模块尝试“直写缓存”是很好的。 https://developers.google.com/appengine/docs/java/memcache/

基本上,直写式缓存的工作原理如下:

  • 对于每个写操作,程序更新数据存储区,然后将数据备份到memcache
  • 对于每次读取操作,程序将尝试从memcache读取。如果它可以找到所需数据,则返回,否则它将从数据存储区获取数据并将结果备份到memcache。

答案 1 :(得分:0)

正如@lucemia所说,你应该使用memcache。

如果您使用objectify,则可以set-up caching declaratively,无需编写和缓存处理代码。