1

我们目前正在使用 AppEngine 的 memcache 来存储会话信息(会话令牌)并缓存一些 HTML 数据。大多数时候,我们的整体内存缓存使用量低于 1 MB。

我们如何防止缓存在几分钟后刷新(今天早上我们在 40 分钟后只有 25 KB)。昨天(2013-10-15 21:30 UTC - 2013-10-15 21:45)我们在 2 到 7 秒内的某个时间刷新了(数据低于 20 KB)?

4

2 回答 2

4

使用默认的免费内存缓存,您的应用程序内存缓存数据与其他 AppEngine 应用程序的内存缓存数据一起存储,因此如果其他应用程序导致可用内存填满,那么您的数据很可能与他们的数据一样过期(请参阅https:/ /developers.google.com/appengine/docs/adminconsole/memcache)。因此,您的应用程序不应期望缓存值始终可用。

但是,您可以将您的应用程序配置为使用专用内存缓存(在管理控制台中的应用程序设置下)。这会专门为您的应用程序使用特定的内存,但每小时每 GB 的成本为 0.12 美元。

于 2013-10-16T09:41:27.100 回答
0

您应该尝试将此数据持久存储在数据存储中,并使用 memcache 获取查询结果,如果不在 memcache 中则设置它。我已经阅读了很多关于“强制”memcache 以不同于设计的方式执行的信息,但事实仍然是,当您请求获取时,您永远无法 100% 确定您会在那里找到数据。

我尝试的所有会话处理程序都将令牌存储到用户模型中,例如. 您可以扩展此模型或创建另一个模型来存储 HTML。

在这里查看@webapp2.cached_property也可以使用

于 2013-10-22T15:58:05.880 回答