【问题标题】:In Python and GAE: How to permanently cache data from a Datastore across HTTP GET requests在 Python 和 GAE 中:如何跨 HTTP GET 请求永久缓存来自 Datastore 的数据
【发布时间】:2012-12-04 03:03:47
【问题描述】:

我正在使用 GAE 和 Python 开发在线产品。我的模型(即数据存储)中的某些数据在 Contexts 中是不变的:这意味着对于所有传入的 HTTP GET 请求,这些数据不会改变。

为了论证,假设所述数据必须存在于数据存储中,而不是静态页面(例如 html)。

我将如何设置 Google App Engine 缓存政策,以便在应用程序的生命周期中只查询一次数据存储区 - 即使产品每天要经历数百万次点击?

免责声明:我是 Python 和 GAE 的新手。

我目前正在研究全局变量,我将使用它来存储所述查询结果。我不仅不知道它是如何工作的,还有另一个问题:不同的 HTTP GET 请求(即 url)用于所述常量数据的不同部分和视图。

感谢您的任何见解。

【问题讨论】:

  • 谢谢。我会看看它。我正在阅读developers.google.com/appengine/docs/python/ndb/cache。但不确定。
  • 如果您使用 NDB API(新的数据存储),它将负责缓存。
  • 如果数据永远不会改变,为什么首先将其存储在数据存储区或内存缓存中?使其成为您的应用读取的数据文件。
  • @RocketDonkey,请您重新发表您的评论作为回复,以便我接受?否则这篇文章将无限期地停留在打开状态。
  • @kasavbere 当然,刚刚发布。希望对您有所帮助。

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


【解决方案1】:

您可能想看看Memcache API。它将允许您基本上做您想做的事 - 缓存查询结果(甚至将结果页面作为 HTML)并在可用时提供它(您可以设置到期时间,但您偶尔也会遇到缓存未命中的情况无论如何都会查询数据存储区)。此外,正如 @voscausa 所提到的,将您的数据存储 API 从 db 切换到 ndb 将提供自动缓存以及进一步修改缓存行为的附加选项(文档 here)。

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 2016-10-16
    • 2012-04-09
    • 2020-04-06
    • 2021-12-15
    • 2012-09-24
    • 2021-07-22
    • 1970-01-01
    • 2017-06-16
    相关资源
    最近更新 更多