我突然得到了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)
但这似乎不起作用。