我有一个要存储在memcache中的实体列表。这个 问题是我有大模型被他们引用 ReferenceProperty也自动存储在memcache中。 因此,我超出了存储在中的对象的大小限制 内存缓存。在
有没有可能阻止ReferenceProperties 在将引用的模型放入memcache时加载它们?在
我试过
def __getstate__(self):
odict = self.__dict__.copy()
odict['model'] = None
return odict
在类中,我想存储在memcache中,但似乎不是这样 诀窍。在
如有任何建议,我们将不胜感激。在
编辑:我通过添加一个日志语句来验证__getstate__
-方法已执行。在
对于大型实体,您可能希望手动处理相关实体的加载,方法是将大型实体的键存储为ReferenceProperty之外的其他内容。这样,您可以选择何时加载大型实体,何时不加载。只需使用长属性存储ID或字符串属性来存储键名。在
可能比使用dict要好(除非getstate需要返回dict-我不熟悉它)。但不确定这是否解决了你的问题。。。您可以在模型中实现del来测试它是否被释放。对我来说,你好像还在某个地方拿着推荐信。在
同时查看pickle模块-您必须将所有内容存储在一个键下,但它自动保护您不受对同一对象的多个引用(只存储一次)。抱歉,没有链接,移动客户端;)
祝你好运!在
相关问题 更多 >
编程相关推荐