Очистка кэша в Друпал. Сбросить кэш drupal


Drupal. Как очистить кэш - Центр Поддержки TemplateMonster

В этом уроке Вы узнаете как очистить кэш в Drupal 6.x и Drupal 7.x.

Drupal 6.x

Войдите в панель управления Drupal и перейдите к меню Administer (Администрирование).

Перейдите ко вкладке Performance (Выполнить).

Мы можем управлять кэшем страницы, блоков, а также очистить кэшированные данные.

Чтобы очистить кэшированные данные, нажмите на кнопку "clear cached data" (очистить кэшированные данные), расположенную в нижней части страницы.

Используйте кнопку Save Configuration (Сохранить конфигурацию) для сохранения изменений.

Drupal 7.x

Войдите в панель управления Drupal и перейдите к меню Configuration (Настройки).

Перейдите ко вкладке Performance (Выполнить).

Мы можем управлять кэшем страницы, блоков, а также очистить кэшированные данные.

Чтобы очистить кэшированные данные, нажмите на кнопку "clear cached data" (очистить кэшированные данные), расположенную в верхней части страницы.

Используйте кнопку Save Configuration (Сохранить конфигурацию) для сохранения изменений.

www.templatemonster.com

Как в Drupal очистить кэш?

Очистка кэша в Друпал

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

Кратко хотелось бы напомнить Вам что кэширование – это процесс сохранения информации о веб-страницах сайта в специальный промежуточный буфер, под названием “Кэш” (Сache), который обладает сравнительно большим быстродействием. Но Вы можете спросить, каким образом подобное сохранение позволяет ускорить процесс работы сайта? Смотрите, пользователь, запрашивая отображение конкретной страницы на экран – отправляет запрос к нашему сайту, который попадает в главную точку входа. Далее запрос попадает в подходящий контроллер для последующей обработки. При этом при необходимости реализуется предварительная обработка данных – валидация, приведение к нужному виду, возможно запрос вспомогательных данных, или просчет некоторых дополнительных параметров. А затем, используя модель, из базы данных выбирается необходимая информация из соответствующих таблиц, которая так же после, может обрабатываться, для передачи дальше в вид – шаблон. То есть, как Вы видите, для того что бы отобразить необходимую страницу на экране пользователя, CMS Drupal выполняет множество всевозможных операций. Но, так или иначе, пользователи запрашивают одни и те же страницы проекта, а значит используя кеширование, готовые к отображению страницы, сохраняются в буфер (в память с быстрым доступом) и при запросе сразу же в виде ответа, отдаются “пользователю”.

Таким образом, не выполняются запросы по выборке информации и что важно, данные заново не формируются, так как они уже подготовлены и готовы к использованию, что значительно ускоряет загрузку приложения. При этом информация, сохраняемая в кэш, записывается на строго определенное время – время жизни кэша, так как сайт – это динамический ресурс и его контент изменяется, то есть, что то добавляется, что то удаляется и нельзя кэшировать навсегда, абсолютно все его страницы, или элементы, так как изменения просто не будут видны. Поэтому для различных элементов сайта выбирается отличное время кэширования, к примеру, блок с меню можно кешировать на более продолжительное время, нежели блок последних записей. Так как содержимое последнего будет изменяться в зависимости от добавления новых материалов.

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

В стандартную комплектацию движка встроен механизм кэширования, который можно включить работу, в разделе “Конфигурация” на странице “Производительность”.

Хотите быстро научиться создавать сайты и блоги на WordPress с уникальным дизайном?

Получите самую полную в Рунете бесплатную систему обучения создания сайтов на WordPress

Узнать подробнее

Очистка кэша в Друпал

Для включения вышеуказанного механизма, достаточно в выпадающем списке “Page cache maximum age”, выбрать время кэширования элементов и нажать по кнопке “Сохранить конфигурацию”. Повторюсь, что время кэширования зависит от того как часто меняется контент Вашего сайта.

Очистка кэша в Друпал

Здесь же присутствует и кнопка, при помощи которой осуществляется очистка устаревшего кэша.

Очистка кэша в Друпал

Но перед тем как ее использовать, давайте внесем небольшие изменения в шаблон нашей страницы. Для этого, если используется стандартная тема “Bartic”, переходим по адресу /core/themes/bartik/templates/ и открываем в текстовом редакторе макет страницы – файл page.html.twig, в который добавим небольшое изменение.

Очистка кэша в Друпал

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

Очистка кэша в Друпал

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

Очистка кэша в Друпал

Теперь все отлично, указанные правки видны на сайте.

Теперь Вы знаете, как работать с кэшем, причем для примера я использовал версию 8, движка, но в Друпал 7, работа с рассматриваемым механизмом реализована абсолютно аналогично.

И напоследок, хотел бы уточнить, что более подробно разделы конфигурации, рассмотрены в премиум курсе Курс по Drupal. Основы. На этом данная статья завершена. Всего Вам доброго и удачного кодирования!!!

Хотите быстро научиться создавать сайты и блоги на WordPress с уникальным дизайном?

Получите самую полную в Рунете бесплатную систему обучения создания сайтов на WordPress

Узнать подробнее

Курс по Drupal. Основы

Прямо сейчас посмотрите курс по Drupal!

Смотреть курс

webformyself.com

Система кэширования Drupal 7. Часть вторая: программное управление кэшем.

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

Шаг первый. Создание нового сегмента кэша.

Назовём наш модуль, например, Example cache. Для создания своего сегмента кэша практически всегда используется клон стандартной таблицы {cache}, поэтому и мы не будем исключением. В example_cache.install имплементируем hook_schema(), чтобы добавить свою таблицу:

/** * Implements hook_schema(). */ function example_cache_schema() {   $schema['cache_example'] = drupal_get_schema_unprocessed('system', 'cache'); $schema['cache_example']['description'] = 'Cache table stores some example data.';   return $schema; }

В принципе всё. Теперь при инсталяции модуля в базе данных будет создана новая таблица с необходимыми полями.

Шаг второй. Заботимся о сбросе кэша.

Вторым шагом я обычно сразу делаю то, о чём в самом конце можно забыть - предусмотреть автоматический сброс кэша. При нажатии на кнопку "Очистка кэша" в разделе "Производительность" (/admin/config/development/performance) должны очиститься все таблицы (сегменты) с кэшем. И наш только что добавленный сегмент не должен быть исключением. Для этого в example_cache.module имплементируем hook_flush_caches(). Он возвращает названия сегментов (таблиц), которые будут очищены при общем сбросе кэша:

/** * Implements hook_flush_caches(). */ function example_cache_flush_caches() { return array('cache_example'); }

Шаг третий. Кэшируем данные.

Давайте теперь для разнообразия закэшируем какие-нибудь данные. Для наглядности я решил закэшировать бесполезную, но достаточно длительную операцию по заполнению массива миллионом элементов. Повесим эту операцию, например, на hook_init():

/** * Implements hook_init(). */ function example_cache_init() {   timer_start('example_cache');   $array = array(); for ($i = 0; $i < 1000000; $i++) { $array[] = $i; }   $timer = timer_read('example_cache') / 1000; drupal_set_message('Мы получили результат за ' . $timer . ' секунд');   }

Как видите, пока никакого кэша нет. У меня эта операция выполняется примерно две секунды. А теперь давайте добавим сюда кэширование:

/** * Implements hook_init(). */ function example_cache_init() {   timer_start('example_cache');   // Указываем любое уникальное имя. $cache_id = 'some_unique_name';   // Пытаемся получить результат из нашего сегмента кэша. $cache = cache_get($cache_id, 'cache_example');   // Если результат был найден в кэше - то просто забираем его. if (!empty($cache->data)) { $array = $cache->data; } else { // Если же результат не был найден, то вычисляем его и сохраняем в кэше. $array = array(); for ($i = 0; $i < 1000000; $i++) { $array[] = $i; }   // Сохраняем результат в кэше на 15 минут. cache_set($cache_id, $array, 'cache_example', REQUEST_TIME + 15 * 60); }   $timer = timer_read('example_cache') / 1000; drupal_set_message('Мы получили результат за ' . $timer . ' секунд'); }

После добавления кэша время выполнения этой функции существенно уменьшилось.

В принципе, это единственный верный способ работы с кэшем и другого пока не придумано. Однако на практике могут применяться ещё несколько функций. Давайте рассмотрим их все.

Сохранение данных в кэше

Для добавления данных в хранилище кэша используется функция cache_set. Она имеет следующие параметры:

Получение кэшированных данных

Для получения данных из кэша используется функция cache_get. Её параметры:

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

Для получения результата так же может использоваться функция cache_get_multiple. Первый её параметр отличается от cache_get лишь тем, что она принимает набор (массив) cid'ов, данные для которых надо получить. После вызова cache_get_multiple из этого массива удаляются все cid'ы, для которых был найден результат.

Очистка (сброс) кэша

Для удаления кэшированных данных используется функция cache_clear_all. Её параметры:

Несколько примеров использования:

// Очищает кэш с истёкшим сроком годности и CACHE_TEMPORARY // из {cache_block} и {cache_page}. cache_clear_all();   // Полностью очищает сегмент {cache_example}. cache_clear_all('*', 'cache_example', TRUE);   // Удаляет из сегмента {cache} запись с Cache ID равным 'my_module'. cache_clear_all('my_module');   // Удаляет из сегмента {cache_example} записи, у которых // Cache ID начинается c 'my_module'. cache_clear_all('my_module', 'cache_example', TRUE);

Проверка на наличие данных в кэше

С помощью функции cache_is_empty можно узнать, хранятся ли в сегменте кэша какие-либо данные. Достаточно малоиспользуемая функция, но тем не менее помнить про неё надо.

Примеры использования

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

drupalace.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта