Разница между минимальным временем жизни кэша и истечением срока хранения кэшированных страниц

35

На странице производительности Drupal под полем Cache у вас есть два варианта. Одним из них является минимальное время жизни кэша, а другим - срок действия кэшированных страниц.

введите описание изображения здесь

В чем разница между этими двумя.

Гокул Н.К.
источник
Посмотрите ближе на «внешнее» слово;)
Mołot
1
Я вроде знаю ответ. Я подумал написать небольшой подробный ответ, чтобы подтвердить свои мысли и надеяться, что это может помочь другим.
Гокул НК
Для подробного ответа проверьте drupal.stackexchange.com/questions/83315/…
Гокул Н.К.

Ответы:

39

После нескольких часов я сделал следующие наблюдения. Если есть какие-либо пробелы или ошибки, дайте мне знать. Я буду рад сделать издания.

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

введите описание изображения здесь

Давайте начнем с первого варианта Cache Pages для анонимных пользователей . введите описание изображения здесь

Когда вы выбираете эту опцию, вы в основном говорите Drupal

Эй, Зверь, слушай, когда анонимный пользователь заходит на мой сайт,

  1. Сохраните сгенерированный HTML в кеш-таблице
  2. Так что я могу отображать одинаковый результат для всех пользователей, так как мои страницы остаются одинаковыми для всех анонимных пользователей.
  3. И не очищайте кэши страниц, пока я не скажу очистить все кэши.

Кроме того, даже если вы не включите, Cache Pages for anonymous users страница все еще может быть кэширована внешними системами кэширования. Например: повышение

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

Истечение срока действия кэшированных страниц

введите описание изображения здесь

  1. Обратите внимание, что этот параметр не имеет ничего общего с базой данных Drupal или таблицами кэша.
  2. Прочитайте описание The maximum time an external cache can use an old version of a page.Как заметил Молот, ключевое слово является внешним.
  3. Таким образом, этот параметр в основном делает то, что он устанавливает заголовок Cache Control publicи значение максимального возраста в заголовке равным указанному значению (в данном случае 1 день).
  4. Этот заголовок сообщает externalсистемам кэширования, чтобы они не обращались к серверу для этой страницы до достижения максимального возраста, поскольку они могут отображать эту страницу из своего собственного кэша. После максимального срока действия система кэширования должна проверить на сервере Drupal, чтобы увидеть, изменился ли контент.

  5. Если это сервер Varnish, он не вызывает Apache и возвращает страницу из своего кэша. Итак, предположим, что Varnish кэшировал страницу, и тысячи разных пользователей сделали запрос на эту страницу. Таким образом, это означает, что 1000 запросов были обработаны без единого попадания на сервер Apache.

Минимальное время жизни кэша введите описание изображения здесь

Если на вашем сайте нет большого трафика или вы не уверены, что это за значение, лучше оставить это значение как нет.

  1. Это значение относится не только к страницам. Но все объекты кеша.
  2. Это значение говорит: «Хорошо обслуживать устаревшие объекты кэша»
  3. В нашем случае значение установлено на 5 минут.
  4. Если у вас есть страница со списком пяти последних блогов на вашей домашней странице. Значения, указанные выше, означают, что если новый блог создан, то нормально, чтобы блог не появлялся в списке в течение пяти минут.
  5. Когда это значение установлено, для минимума обновления / воссоздания кэша должно пройти минимум этого времени, и должно быть выполнено действие очистки кэша [должна быть запущена функция очистки кэша].
Гокул Н.К.
источник
1
Спасибо за этот ответ. Я немного смущен: для «Кэшированных страниц для анонимных пользователей» вы говорите, что это означает «не очищать кэши страниц, пока я не скажу« очистить все кэши ». Что означает это «я говорю» ? Что приведет к очистке кэша?
s427
1
@ s427, пожалуйста, проверьте drupal.stackexchange.com/questions/102976/… для получения подробной информации о том, что приведет к очистке кэша.
Гокул НК
1
Что мне показалось интересным, так это то, что это верно, только если включена функция «Кэширование страниц для анонимных пользователей». Если нет, изменение «Срок действия кэшированных страниц» ничего не делает, а включение «Минимальное время жизни кэша» устанавливает заголовки. Только если кеширование для анонимных пользователей включено и ТОЛЬКО ПОТОМ «Срок действия кэшированных страниц» устанавливает заголовки. Это немного сбивает с толку ...
Лукаш Зарода
19

Эта статья содержит краткое изложение терминологии кэширования в Drupal: http://www.phase2technology.com/blog/caching-in-drupal/

Резюме соответствующих пунктов:

Минимальное время жизни кеша часто неверно истолковывается как означающее «страницы будут восстановлены после того, как пройдет много времени». На самом деле это означает, что страницы не будут обновляться до тех пор, пока, по крайней мере, не пройдет столько времени и не произойдет событие очистки кэша.

Срок действия кэшированных страниц также иногда неверно истолковывается. Это значение контролирует то, что отправляется как значение максимального возраста в заголовке Cache-Control, и, таким образом, сообщает прокси-серверам, как долго они могут обслуживать страницу, не запрашивая у вашей установки Drupal новую копию. Это не означает, что страница будет восстановлена ​​через столько времени, это просто означает, что прокси-сервер должен проверить еще раз с Drupal, чтобы узнать, существует ли новая версия страницы после этого времени. Drupal восстановит страницу только после того, как произойдет событие очистки кэша.

jazzdrive3
источник