我在GAE上部署了一个商店前端应用程序,允许用户查看他们的订单历史记录。我试图在使用memcache缓存数据之间做出决定,或者只是将数据存储在用户会话中,而不是每次请求新的页面/订单集时都会访问数据存储区。任何人都可以推荐一个或另一个?如果我使用了memcache,我可能会使用用户ID和硬编码字符串的组合作为memcache条目的键。
答案 0 :(得分:2)
GAE会话由Memcache和数据存储区支持:
App Engine包含使用servlet的会话实现 会话界面。该实现将会话数据存储在App中 用于持久性的引擎数据存储,还使用memcache来提高速度。 (documentation)
由于您无论如何都需要将订单数据存储在数据存储区中,因此使用会话将导致两次保存相同的数据。所以我建议使用Memcache。
答案 1 :(得分:1)
只需使用Objectify或其他智能框架将所有内容存储在数据存储区中,该框架将为您处理所有缓存。
最重要的是,您可以通过创建密钥来解决实体问题,而不必对数据存储执行任何查询,因为缓存不起作用。如果您可以根据userId为memcache创建密钥,那么您可以为数据存储区执行此操作。