Таблица cachetags
Таблица cachetags является ключевым компонентом системы инвалидации кеша в Drupal. Она хранит информацию о том, какие теги кеша связаны с какими элементами кеша (кеш-записями в других биндах кеша), что позволяет эффективно очищать группы связанных данных при изменении контента или конфигурации.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
tag |
varchar(255) |
Идентификатор тега кеша. Теги обычно имеют формат entity_type:entity_id или config:config_name.
|
invalidations |
int |
Счетчик инвалидаций для данного тега. Увеличивается при каждой инвалидации тега. |
deleted |
tinyint |
Флаг удаления тега (1 - удален, 0 - активен). Используется для отслеживания тегов, подлежащих очистке.
|
Как это работает
Когда Drupal кеширует какой-либо элемент (рендер массивы, результаты запросов, конфигурации), он присваивает ему один или несколько тегов. Эти теги регистрируются в таблице cachetags.
При изменении сущности (например, статьи) система инвалидирует соответствующий тег (например, node:1). Это приводит к увеличению счетчика invalidations для данного тега.
При последующем обращении к кешированным элементам система проверяет, совпадает ли значение счетчика инвалидаций, хранящееся в кеш-записи, с текущим значением в таблице cachetags. Если значения различаются, кеш-запись считается устаревшей и перестраивается.
Теги могут быть разных уровней детализации. Например, тег node_list инвалидируется при любом изменении любых материалов, а тег node:5 - только при изменении конкретного материала с ID 5.
Периодически (например, при выполнении cron) система очищает устаревшие теги и связанные с ними кеш-записи, помеченные как удаленные.
Пример SQL-запроса
Посмотреть все активные теги с количеством инвалидаций можно следующим запросом:
SELECT tag, invalidations
FROM cachetags
WHERE deleted = 0
ORDER BY invalidations DESC;
Смотрите также
-
таблицу
cache_bootstrap,
которая хранит кеш начальной загрузки системы -
таблицу
cache_config,
которая хранит кешированные данные конфигурации -
таблицу
cache_data,
которая хранит общие данные кеша -
таблицу
cache_render,
которая хранит кешированные render arrays