Мне нужно реализовать кеширование на моем сайте Django 1.8 (для ускорения рендеринга, очевидно). План заключается в использовании Memcache, хотя этот вопрос напрямую не связан с ним.Использование кеша Django в том и только в том случае, если пользователь вышел из системы?
В настоящее время много трафика поступает на определенный набор сообщений в блоге, которые остаются постоянными. Но есть универсальный динамический верхний бар на всем сайте, который может отличаться от зарегистрированного пользователя для входа в систему, поэтому мне нужна функция кеша, которая срабатывает тогда и только тогда, когда пользователь анонимен - например, который полностью исключается, если пользователь вошел в систему.
Похоже, что встроенный кэш Django не отличает пользователей, которые вошли в систему и выходил из системы, поэтому, если я его использую, будут неблагоприятные последствия для зарегистрированных - в людях.
Возможно, мне придется написать свою собственную функцию кеш-декодера/кеша, используя API-интерфейс кэша нижнего уровня и прикрепить его ко всем доступным URL-адресам/представлениям на сайте. Хотя это не кажется сложным, это кажется невероятно распространенной особенностью. Неужели в Django действительно ничего не сделано? Я волнуюсь, что, возможно, что-то пропустил, и переоцениваю колесо.
Спасибо!
Спасибо за этот ответ - я вижу, как это можно использовать для каждого пользователя. Отказ шаблона в этом случае не является узким местом. Что является узким местом, так это тот факт, что шаблон заполняется несколькими вызовами базы данных (поскольку фактический контент хранится в elephantblog/feincms). Следовательно, мне нужно кэшировать на уровне URL/контроллер, прежде чем он даже сделает эти вызовы. – mallyvai
это также может использоваться для пользователей без авторизации, потому что тогда пользователь будет анонимным для всех из них. Да, кеширование всех или части запросов в memcache может дать вам гораздо лучшее улучшение скорости – e4c5