【问题标题】:django + memcached: problem with limit of 1 mbdjango + memcached:限制为 1 mb 的问题
【发布时间】:2010-02-18 19:39:01
【问题描述】:

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

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

这可以在这个sn-p http://www.djangosnippets.org/snippets/488/的基础上工作

【问题讨论】:

    标签: django memcached django-cache


    【解决方案1】:

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

    大多数时候,当我们深入研究人们试图用更大的物体做的事情时,他们会退缩到角落并开始提出诸如“好的,现在我怎么能只请求 part em> 这个对象?”

    有时,需要更大的对象是合理的(因此我们支持)。

    【讨论】:

    • 就我而言,没有必要获取缓存数据的一部分。我尝试缓存大站点地图 xml 文件(大约 1.5 Mb)。怎么可能增加天花板?有配置参数吗?我认为有必要为这个pourpose重建memcached包,不是吗?
    • 我不认为将您的 sitemap.xml 放入 memcached 有很大的意义。只需批量生成并分发即可。
    【解决方案2】:

    您是否检查过 gzip 压缩站点地图是否有帮助?对我来说,它将我的站点地图减少到 200kb,现在它们完全适合 memcached。现在,站点地图机器人在使用 gzip 方面没有任何问题。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-02
          • 1970-01-01
          • 2014-02-10
          • 1970-01-01
          • 1970-01-01
          • 2010-10-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多