Google App Engine:Memcache 1MB限制

时间:2014-07-17 02:06:26

标签: python google-app-engine memcached pickle app-engine-ndb

我突然得到了Memcache 1MB限制ValueError。在我了解有关序列化/酸洗的更多信息之前,我希望找到一个快速的'bandaid'解决方案。我从未做过任何酸洗,实际上并不熟悉memcache。我从Udacity的课程中学到了东西。

我做了一些研究,并阅读了一些现有的问题,包括Guido的Avoiding Memcache "1000000 bytes in length" limit on values

这是我用来将NDB查询保存到memcache中的代码:

def all_entities(self, update = False):
    key = 'all_entities'
    all_entities = memcache.get(key)
    if all_entities is None or update:
        all_entities = Entity.query().order(-Entity.created).fetch() # 1000+ items
        all_entities = list(all_entities)
        memcache.set(key, all_entities)
    return all_entities

我有一些其他NDB查询,它们同样保存到memcache。根据我的研究,我了解在这些情况下应该使用pickling。由于我的网站目前处于停机状态,我希望找到一个创可贴解决方案,同时我会花一些时间来学习更好的方法。

我尝试更改查询以获取更少的项目:

all_entities = Entity.query().order(-Entity.created).fetch(100) 

但这似乎不起作用。

0 个答案:

没有答案