根据文档,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/