django + memcached:限制为1 mb的问题

时间:2010-02-18 19:39:01

标签: django memcached django-cache

有没有人知道在memcached中保持数据大于1mb的任何解决方案?

在从memcached获取之后设置和合并这些片段之前,将大数据削减到1mb是没有什么大不了的。并且该算法可以为用户透明地工作。

这可以在此代码段http://www.djangosnippets.org/snippets/488/

的基础上运行

4 个答案:

答案 0 :(得分:1)

你可以要求memcached增加上限,但这通常表明你做错了。

大多数时候,当我们深入研究人们试图用更大的物体做的事情时,他们会支持自己进入一个角落并开始提出诸如“好的,现在我怎么能要求部分这个对象?“

有时,对更大的对象有合理的需求(所以我们支持)。

答案 1 :(得分:1)

您是否检查过gzipping您的站点地图是否有帮助?对我来说,它将我的站点地图缩小到200kb,现在它们非常适合memcached。而且这些天站点地图机器人对gzip没有任何问题。

答案 2 :(得分:1)

我在使用QuerySet结果缓存长列表时遇到了类似的问题。 MyModel.object.defer('huge_data_field1','huge_data_field2')帮助从结果中排除了大量数据并为我解决了问题。 希望也会帮助其他人。

答案 3 :(得分:0)

您可以设置一个获取站点地图的cron作业(由Django的站点地图框架生成)并将其保存到文件中。然后将该文件作为静态媒体提供(通过nginx或apache,而不是通过django ofcourse ...)

curl -o /path-to-static-media/sitemap.xml http://yoursite.com/view-that-generates-sitemap/sitemap.xml