Управляемый и тегированный кеш
Кеширование в платформе разделено на базовый файловый кеш (Bitrix\Main\Data\Cache), управляемый кеш таблиц (ManagedCache) и тегированный кеш (TaggedCache). Теги привязываются к конкретным каталогам кеша, а их регистрация позволяет автоматически сбрасывать связанные фрагменты вывода при модификации сущностей через API.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
Управляемый кеш
-
2
HTML-кеш компонентов
-
3
Тегированный кеш
-
4
Автокеширование
Материалы
Официальная документация
-
Конфигурация ядра: раздел «Кеширование» Новая дока
-
Отладка: раздел «Детальная статистика кеша» Новая дока
Проверь себя
Заказчик поменял цену в админке, на сайте старая. Какой слой смотреть первым?
Кеш компонента: в режиме «Авто + Управляемое» он живёт до TTL или до сброса тега iblock_id_N. Если управляемый кеш выключен в настройках автокеширования, константы BX_COMP_MANAGED_CACHE нет и теги не сбрасываются вовсе. ManagedCache ORM здесь ни при чём — он про выборки, а не про HTML.
Чем ManagedCache::read() с третьим аргументом отличается от вызова без него?
Третий аргумент — каталог orm_<таблица>, и такой кеш ORM сбрасывает после add, update и delete. Без него запись живёт до TTL или до ручного clean().
Тег зарегистрирован, clearByTag() вызван, а данные старые. Где искать?
В каталогах: тег привязан к пути из startTagCache(), а clearByTag() чистит именно этот путь через cleanDir(). Кеш, инициализированный в другом каталоге, не задет.
Что даёт блокирующий режим и когда он не спасает?
При протухшем кеше пересобирает его один поток, остальные отдают старую версию, пока новая не готова. Если кеша нет совсем — холодный старт после «очистить всё», — каждый поток считает сам, и режим не помогает.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить