Управляемый кеш компонентов

Слайд 2

Цели управляемого кеширования

Описание проблемы:
Для комфорта пользователей - высокая скорость создания

Цели управляемого кеширования Описание проблемы: Для комфорта пользователей - высокая скорость создания
страниц
Высокая скорость обеспечивается использованием кеширования.
Кеширование требует понимания от контент менеджеров.
Разработчики затрачивают дополнительные усилия для реализации механизмов сброса кеша при изменениях контента.
Решение проблемы:
Разработка и реализация технологии управления кешем без привлечения дополнительных усилий разработчиков.
При минимальных затратах серверных ресурсов.

Слайд 3

Идея реализации

Компоненты для кеширования используют метод StartResultCache.
Связать с файлом кеша

Идея реализации Компоненты для кеширования используют метод StartResultCache. Связать с файлом кеша
некие метки (теги) и сохранить их в БД.
При необходимости сброса кеша:
по меткам определить файлы кеша
удалить их
На практике теги привязываются не к файлам, а каталогам.

Слайд 4

Как это работает

Как это работает

Слайд 5

Вложенность тегов

b_cache_tag

Вложенность тегов b_cache_tag

Слайд 6

Сброс кеша

Основные классы модуля используемые в компонентах
CIBlock
CIBlockSection
CIBlockElement
Методы

Сброс кеша Основные классы модуля используемые в компонентах CIBlock CIBlockSection CIBlockElement Методы
модификации данных
Add
Update
Delete

$CACHE_MANAGER->ClearByTag("iblock_id_".$IBLOCK_ID);

Обработчики событий

Слайд 7

Рекомендации по использованию

Не подходит для проектов с часто обновляемой информацией т.к.

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