【发布时间】:2010-12-21 03:19:10
【问题描述】:
我正在使用带有 memcached 的 Django。
在我的一个模板中,我添加了
{% 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。
有什么想法吗?
谢谢。
【问题讨论】: