Django memcached не будет кэшировать большой вывод шаблона - PullRequest
0 голосов
/ 21 декабря 2010

Я использую 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.

Есть мысли?

Спасибо.

1 Ответ

1 голос
/ 21 декабря 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...