Особенности работы встроенного в Drupal кэширования

Опубликовано: 19.10.2017

Сегодня у нас будет перевод небольшой заметки в блоге Криса Джонсона об особенностях встроенного в Drupal кэширования.

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

Кэширование страниц для анонимных пользователей

Первая настройка — Кэширование страниц для анонимных пользователей. Эта настройка указывает Drupal о необходимости сохранения сгенерированной страницы для одного анонимного пользователя и показа ее другим анонимным пользователям. Страницы сохраняются с идентификатором URL'a запроса, технически это $base_root . request_uri(), так запросы для http://example.com/page_one и http://example.com/page_one?rand=1 считаются различными и генерируются отдельно, даже если '?rand=1' не влияет на генерацию страницы, то есть результирующие страницы одинаковы.

Как только параметр кэширование страниц будет включен станут доступными две настройки: Минимальное время жизни кэша (Minimum cache lifetime) и Максимальное время (expiration of cached pages).

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