Модуль, который использует cache_set устанавливает срок действия в вызове. Некоторые вещи имеют явную продолжительность, другие имеют постоянную или полупостоянную продолжительность жизни, в зависимости от ситуации.
Кэши очищаются явно, когда вы вызываете метод через интерфейс администратора (или drush) или иным образом с помощью drupal_flush_all_caches или cache_clear_all .
В последнее время я использую hook_cron для очистки определенных таблиц кэша каждую ночь.
РЕДАКТИРОВАТЬ, чтобы ответить на комментарий:
Чтобы узнать, какой кеш, я обычно помещаю это в отдельный скрипт:
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
header("Content-Type: text/plain; encoding=utf-8");
$user = user_load(1);
print "Modules implementing hook_cron:\n" . implode("\n", module_implements('cron'));
Чтобы увидеть истечение срока действия, изучите различные таблицы cache
в базе данных и посмотрите на столбец expire
. Модули могут устанавливать срок действия для каждого отдельного вызова на cache_set
, поэтому он может варьироваться в зависимости от ввода.