【问题标题】:How to handle caching and data-store sync in GAE如何在 GAE 中处理缓存和数据存储同步
【发布时间】:2012-08-20 21:44:29
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    • 对于每次写入操作,程序更新数据存储,然后将数据备份到内存缓存
    • 对于每次读取操作,程序都会尝试从内存缓存中读取。如果能找到需要的数据,则返回,否则从datastore中取出数据并将结果备份到memcache。

    【讨论】:

      【解决方案2】:

      正如@lucemia 所说,您应该使用内存缓存。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-02
        • 1970-01-01
        • 2013-02-16
        相关资源
        最近更新 更多