Django memcached不会缓存大型模板输出

时间:2010-12-21 03:19:11

标签: django memcached

我正在使用Django和memcached。

在我的一个模板中,我添加了

{% cache 28800 template_browse_gene_list %}
...
{% endcache %}

块中的东西相当大,只有1 MB以上;它是迭代通过返回大量数据的昂贵SQL的结果。由于对QuerySet进行了延迟评估,因此如果缓存有效,则使用缓存可以避免使用SQL。

当我使用locmem作为缓存后端时,这是有效的。我避免使用SQL并获得缓存结果。

当我使用-I 4m设置连接memcached时,我在详细输出中得到以下内容:

<30 new auto-negotiating client connection
30: Client using the ascii protocol
....
<30 get template.cache.template_browse_gene_list.d41d8cd98f00b204e9800998ecf8427e
>30 END
<30 connection closed.

一旦页面返回,就会显示连接关闭行,但经过相当的等待。我认为基本上在SQL完成时,会出现连接已关闭的消息。所以基本上,没有任何东西进入memcached这个条目。同样,这适用于locmem。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:1)