Разница между стандартными параметрами кэша

12

Joomla! есть 3 разных способа кеширования:

  • «Консервативное кэширование» (в глобальной конфигурации)
  • «Прогрессивное кеширование» (в глобальной конфигурации)
  • плагин "Система - Кеш"

У меня есть следующие вопросы:

  • В чем различия?
  • Когда я использую какой вариант?
  • Должен ли я включить плагин кеша, когда я уже включил опцию в конфигурации?
  • Какой правильный способ настройки системы кэширования по умолчанию?
Федик
источник

Ответы:

5

В дополнение к ответу Шьяма ...

В Global Configuration-> Cache...

  • Консервативное кеширование - это кеш, сгенерированный для каждого представления компонента / модуля.
  • Прогрессивное кеширование - это кеш, сгенерированный для каждого представления компонента / модуля на индивидуальной основе для каждого пользователя.

Это кэш представлений уровня расширения. Это должно быть реализовано разработчиком расширения, чтобы иметь какой-либо эффект.

Примечание. Зарегистрированные пользователи никогда не увидят кэшированный контент с помощью этих средств.

Вы можете переопределить кэширование отдельных модулей, если включено «Консервативное кэширование», отключив кэширование в дополнительных параметрах модуля. Вы НЕ МОЖЕТЕ переопределить кэширование модулей для каждого модуля, если установлено «Прогрессивное кэширование».

System - Cache плагин генерирует страницы кэши каждой целой страницы в /cache.

Для большинства сценариев достаточно включить плагин System - Cache . Если вы хотите кэшировать только определенные модули / компоненты (в которых реализовано кэширование), отключите плагин и включите консервативное кэширование в глобальной конфигурации. Затем вы можете установить исключения, отключив кэширование в дополнительных параметрах модуля.

Обратите внимание, что любое кэширование - это баланс между временем и пространством - полное кэширование страниц уменьшит загрузку БД и, следовательно, время загрузки страниц, но увеличит использование дискового пространства.

Вы можете найти дальнейший анализ и тесты системы кэширования здесь , а также документы Joomla Cache для администраторов и эту превосходную статью, подробно описывающую различные варианты и применимые предостережения.

codinghands
источник
Но я использую прогрессивный кеш, и он учитывает настройки кеша модулей, поэтому я думаю, что вы должны попробовать это и исправить свой ответ.
JackJoe
Вы уверены? Каждый сайт, который я просмотрел, Progressive cachingбудет переопределять любые настройки уровня модуля (особенно 3-ю таблицу в разделе «Необработанные результаты» на inmotionhosting.com/support/edu/joomla-25/caching/… ). Я попытаюсь проверить это на чистой установке сегодня, чтобы проверить, так или иначе.
codinghands
1
о: "Консервативное кэширование плюс включение плагина System - Cache достаточно" - имеет ли это реальный смысл? потому что, как вы объяснили: плагин делает кеш для всей страницы, поэтому (как я понимаю) в данном случае Joomla! не запускается расширение и т. д. Консервативное кеширование .. или я что-то не так понимаю?
Федик
1
Я только что попробовал, и в некоторых ситуациях это работает, а в других - нет! если вы включаете модуль в статью (например, по его позиции), он учитывает настройку отсутствия кэша, но в обычной позиции модуля он игнорирует его! Я бы поклялся, что это работает для обычного модуля, но я просто попробовал еще раз, и это не так.
JackJoe
@Fedik Вы совершенно правы, недоразумение с моей стороны. Теперь обновил мой ответ.
codinghands
3
  1. Разница между кешированием -

    Консервативное кэширование является стандартным типом кэширования. Вот как это работает:

    Посетитель заходит на страницу вашего сайта.

    • Joomla проверяет, есть ли версия этой страницы с истекшим сроком действия в каталоге кеша.
    • Если кэшированная страница существует (и срок ее действия не истек), то Joomla предоставит ее посетителю.
    • в противном случае создается кэшированная версия страницы, и эта кэшированная версия будет предоставлена ​​посетителю и каждому последующему посетителю, если срок его действия (под «мы» подразумеваем страницу) не истек.

    Вышеприведенный сценарий является типичным и именно так большинство разработчиков реализуют кэширование.

    Прогрессивное кэширование работает следующим образом:

    • Посетитель заходит на страницу вашего сайта.
    • Joomla проверяет, существует ли кэшированная версия этой страницы для этого посетителя, и срок ее действия еще не истек.
    • Если эта кэшированная страница существует, то она будет предоставлена ​​посетителю, в противном случае Joomla создаст кэшированную страницу для этого конкретного посетителя и затем предоставит ее ему.
    • Если другой посетитель (который никогда не был на этой странице) посещает эту страницу, то Joomla не будет обслуживать кэшированную страницу предыдущего посетителя, вместо этого она создаст кэшированную версию этой страницы специально для этого пользователя, а затем предоставит ее ему.

    Как видите, прогрессивное кэширование только улучшает производительность

    • если один и тот же посетитель посещает одну и ту же страницу в течение срока действия кэшированной версии страницы.
    • В большинстве сценариев прогрессивное кэширование приводит к огромному снижению производительности, которое намного хуже, чем отключение кэша, просто потому, что почти для каждого посещения Joomla должен обработать запрос, создать кэшированную версию страницы и затем предоставить страницу посетителю. (вместо того, чтобы просто обрабатывать запрос и обслуживать страницу в сценарии, где кеш отключен).
    • О, и не забывайте обо всех файлах кеша, сгенерированных Joomla - вы можете только представить, сколько из этих файлов вы будете иметь в своей папке кеша, если у вас новостной сайт с большим трафиком (который имеет много страниц).

    Теперь вы можете задаться вопросом, при каких обстоятельствах полезно прогрессивное кэширование? Ну, представьте, что у вас есть видео-сайт (похожий на YouTube). Вы хотите показать каждому посетителю настроенные страницы на основе его местоположения и / или настроек браузера и / или установленных плагинов. Таким образом, для каждой страницы, которую загружают посетители, вы используете эту информацию для создания настраиваемой версии этой страницы и кешируете ее. Если посетитель снова посещает ту же страницу, Joomla не нужно переделывать работу, чтобы создать настроенную страницу.

    Конечно, существует много сценариев, при которых прогрессивное кэширование действительно полезно, но, по нашему мнению, прогрессивное кэширование следует рассматривать только в том случае, если веб-сайт получает много посетителей и если эти посетители в основном являются повторными посетителями. Использование его в других случаях приведет к значительному снижению производительности сайта. Ссылка: прочитайте Joomla Caching подробно

  2. Консервативный рекомендуется.

  3. Плагин кеша обеспечивает полный кеш страниц при включении.
Shyam
источник
3
Не могли бы вы отредактировать этот ответ, чтобы предварительно отформатированные блоки были вместо кавычек? Кроме того, обратите внимание на оригинальный источник этой информации ( itoctopus.com/… и цитируется в stackoverflow.com/questions/12739297/… ). Кроме того, вы рекомендуете прогрессивное кэширование, даже если это упомянуто в статье только для очень конкретных случаев использования ...?
codinghands
не очень понятно, вы сказали, что: Консервативная / Прогрессивная «проверяет, существует ли кэшированная версия этой страницы» и о плагине «Плагин кэширования обеспечивает полный кэш страницы» .. так что все эти опции и плагин делают кэширование для вывода всей страницы или?
Федик
хорошо, я вижу другой ответ;)
Федик
Обновленный ответ № 2 Изменен на консервативный.
Shyam