НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
99 of 182 menu

Таблица 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
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить