google-app-engine - GAE 内存缓存生命周期非常短

标签 google-app-engine memcached lifetime

根据文档,memcache 单元的最长生命周期为 1 个月,除非由于服务器 RAM 容量问题而被删除。

我的应用将 {'customer_id':'customer_name'} 存储在内存缓存中(1600 多个项目),用于自动完成和客户索引需求。

代码如下:

memcache.add('keys', keys, time=86400) #if 'keys' is absent, then all memcache items are regenerated.
memcache.add_multi(names, time=86500, key_prefix='customer_id_')

问题是我的大部分条目都会在一个小时左右过期,只留下 10 或 11 条条目。文档还说,如果没有设置时间,memcache项的默认生存时间是一小时。

那么我是否错误地设置了 memcache 的生命周期(如果是这样,为什么它会留下 10 个项目),或者 google memcache 对于 11 个以上的项目不可靠(在这种情况下我应该做什么?以某种方式将此数据存储在 XML 中?) ?

最佳答案

我的安静应用程序的当前统计数据显示它可以轻松容纳数百个项目几个小时:

Item count:         285 item(s)
Total cache size:   5462609 byte(s)
Oldest item age:    11 hour(s) 38 min(s) 29 second(s)

如果您有 1600 个项目,并且其中一个项目(键+数据)大小小于 500 字节,我建议将它们全部存储在一个内存缓存条目中,作为字典或其他内容。

关于google-app-engine - GAE 内存缓存生命周期非常短,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15477460/

相关文章:

reference - 如何制作引用文献的副本? (生活问题)

multithreading - 延长线程变量的生命周期

python - 无法使用 python3 使 tesseract 在 Google 应用程序引擎中工作

google-app-engine - 如何防止我的 Google App Engine cron 作业耗尽我的所有实例时间?

django - 你怎么知道 memcached 是否在做任何事情?

mysql - 使用 cassandra 代替 memcache?

generics - 即使 `AsRef` 存在足够长的时间,借用的值对于 `self` 结果来说也没有足够长的存在

google-app-engine - protorpc 使用 FieldList 从调用者处读取列表

python - 在创建实体期间将作者分配给实体

python - 在 Django 中,如何清除所有的 memcached 键和值?