我正在使用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。
有什么想法吗?
感谢。