Управляемый кеш компонентов Максим, Смирнов программист.

Презентация:



Advertisements
Похожие презентации
Поддержка пользовательских файловых хранилищ. Облачные хранилища. Максим Смирнов ведущий разработчик.
Advertisements

Новое в инфоблоках: вычисляемые свойства и ORM. Смирнов Максим Ведущий программист «1С-Битрикс»
Как снизить нагрузку на высокопосещаемый проект? Технический директор «Ленвендо» Виталий Гаврилов +7 (812) (Санкт-Петербург) +7 (495)
Информационные блоки+ Битрикс: Управление сайтом Максим Смирнов ведущий разработчик компании «Битрикс»
Веб-кластер, планы по развитию, распределенный веб-кластер Максим Смирнов ведущий разработчик.
Рекомендации по работе со службой технической поддержки Шаромов Денис руководитель отдела техподдержки.
Кэширование Факультет Интернета МФПУ СИНЕРГИЯ Курс «Веб-разработка» Илья Ершов.
Использование MySQL в сервисе дневников LiveInternet.ru Практика, практика, практика Гурьянов Андрей, программист Новиков Лев, системный администратор.
Toolset: управляй мечтой Докладчик Смирнов Олег, Dagor Technologies.
Новые возможности.NET Forge CMS Григорий Заводов ведущий разработчик «1С-Битрикс»
Тренинг «Разработка веб-приложений на ASP.NET» Занятие 2 Страницы и элементы управления Гайдар Магдануров
Инструкция по развертыванию и настройке системы дистанционного обучения Moodle.
Система контроля прав доступа При помощи процедур и триггеров в MySQL.
Экспертиза производительности Типовые ошибки разработчиков Шаромов Денис руководитель отдела техподдержки «1С-Битрикс»
Эрмитаж. Новая концепция интерфейса платформы «1С-Битрикс 9.5»
Анализ и выделение классов Практика 1. Задача 1 Диск состоит из пронумерованных кластеров. На диске есть именованные папки, в которые вложены папки или.
Flash портал top4top.ru: структура, проблемы, решения.
Разгони свой сайт Лекция 3: Кэширование Мациевский Николай 1 / 19 webo.in.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – оптимизация скорости работы приложений Из цикла лекций.
Опыт реализации отказоустойчивого сервера приложений и хранилища данных на базе СУБД ЛИНТЕР Михаил Ермаков, Дмитрий Мухоедов, РЕЛЭКС.
Транксрипт:

Управляемый кеш компонентов Максим, Смирнов программист

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

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

Как это работает news.list/component.php: news.list/component.php CBitrixComponent::StartResultCache(); CPHPCache::StartDataCache(…, $cachePath); $CACHE_MANAGER->StartTagCache($cachePath); CIBlockResult::GetNextElement/GetNext/Fetch(); $CACHE_MANAGER->RegisterTag("iblock_id_".$res["IBLOCK_ID"]); CBitrixComponent::IncludeComponentTemplate/EndResultCache(); $CACHE_MANAGER->StartTagCache(); CPHPCache::EndDataCache();

Вложенность тегов $CACHE_MANAGER->StartTagCache(«news.list/c45»); $CACHE_MANAGER->RegisterTag(«news_tag»); $CACHE_MANAGER->EndTagCache(); $CACHE_MANAGER->StartTagCache(«iblock.vote/e67»); $CACHE_MANAGER->RegisterTag(«vote_tag»); $CACHE_MANAGER->EndTagCache(); b_cache_tag

Сброс кеша Основные классы модуля используемые в компонентах CIBlock CIBlockSection CIBlockElement Методы модификации данных Add Update Delete $CACHE_MANAGER->ClearByTag("iblock_id_".$IBLOCK_ID); Обработчики событий

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

Спасибо за внимание! Вопросы?