Я использую Django с memcached.
В одном из моих шаблонов я добавил
{% cache 28800 template_browse_gene_list %}
...
{% endcache %}
Материал в блоке довольно большой, чуть более 1 МБ;это результат перебора дорогого SQL, который возвращает много данных.Поскольку QuerySet оценивается лениво, использование кеша здесь позволяет избежать SQL, если кеш работает.
Когда я использую locmem в качестве бэкэнда кеша, это работает.Я избегаю SQL и получаю кешированный результат.
Когда я подключаю memcached, с параметром -I 4m, я получаю следующее в подробном выводе:
<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.
Есть мысли?
Спасибо.