2013-10-16 56 views
1

我们目前正在使用AppEngine的memcache来存储会话信息(会话令牌)并缓存一些HTML数据。大多数情况下,我们的整体memcache使用率都低于1 MB。如何防止AppEngine memcache刷新

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

回答

4

使用默认的空闲memcache,您的应用程序memcache数据与其他AppEngine应用程序的数据一起存储,所以如果其他应用程序导致可用内存填满,那么您的数据可能会像他们的(见https://developers.google.com/appengine/docs/adminconsole/memcache)。因此,您的应用程序不应期望缓存的值始终可用。

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

+0

问题是退房here,即dedeciated内存缓存是一个预览功能(所以没有SLA等)和(即1051年的$该专用内存缓存存储的最低金额为1 GB ,这是我们目前花费在所有AppEngine使用上的两倍多)。我至少会期望,共享内存缓存应该在几个小时内保持10MB(就像过去一样)。 –

+1

您的问题可能与昨天推出的AppEngine v1.8.6有关(请参阅https://code.google.com/p/googleappengine/wiki/SdkReleaseNotes)。可能需要一些时间来解决问题。 – IanGSY

+0

但是,至少在我们的登台服务器(一个应用程序中,当前帐单被禁用),刷新仍然发生在不到1小时(缓存中只有25 KB数据) –

0

您应该尝试将此数据持久存储在数据存储上,并使用memcache来获取查询结果,或者如果不在memcache中则将其设置。我已经读了很多关于'强制'memcache执行不同于它的设计,但事实是,当你要求get时,你不可能100%确定你会找到数据。

我试过的所有会话处理程序都提供令牌存储到用户模型中,for example。 您可以扩展此模型或创建另一个模型来存储HTML。

使用的@webapp2.cached_property