Модуль Cache связывает Друпал с другими системами кеширования, такими как APC, memcache или redis. Система кеширования Cache, начата как форк проекта Cache Router и предоставляет возможность использования функции page_fast_cache()
. Сам по себе, модуль не содержит дополнительных обработчиков и хранит кеш в базе данных.
page_fast_cache()
hook_requirements()
По умолчанию, модуль не требует дополнительных программ для работы с кешем и использует для кеширования базу данных. Но если вы хотите использовать все возможности модуля, то вам будет нужно установить дополнительные программы (одну или несколько):
Распакуйте модуль в папку дополнительных модулей
Внесите изменения в файл settings.php:
<?php
$conf['cache_inc'] = './sites/all/modules/cache/cache.inc';
$conf['cache_settings'] = array(
'engines' => array(
db-engine => array(
'engine' => 'database',
),
),
'schemas' => array(
'db-schema' => array(
'db-engine',
)
),
'bins' => array(
'default' => 'db-schema',
),
);
?>
default — кеширование применяющееся по умолчанию. Это значение будет использоваться в том случае, если другие варианты кеширования будут пропущены. Вы можете добавить несколько схем кеширования и использовать их для своих таблиц. Каждая схема — это массив массивов, каждый массив содержит конфигурацию используемого механизма кеширования. Если для схемы определены несколько механизмов, то будет использоваться первый найденный. Если запись не будет найдена в первом механизме, то будет сделана попытка найти её во втором и так далее.
Для включения альтернативного управления сессиями, можно добавить в settings.php следующую запись:
$conf['session_inc'] = './sites/all/modules/cache/session.inc';
В этом случае будут созданы таблицы {cache_session}
и {cache_session_user}
. Вы можете настроить для них любую схему кеширования так же, как и для других таблиц.
Для включения управления хранилищем кеша альтернативных адресов, можно добавить в settings.php следующую запись:
$conf['path_inc'] = './sites/all/modules/cache/path/path-max.inc';
или
$conf['path_inc'] = './sites/all/modules/cache/path/path-cache.inc';
Использование этой возможности требует применения патча path_inc-variable-support.patch. При использовании этих записей, будут созданы таблицы {cache_path_alias}
и {cache_path_source}
. Для них вы можете определить любую схему кеширования так же, как для любых других таблиц.
Пример 1:
<?php
$conf['cache_inc'] = './sites/all/modules/cache/cache.inc';
$conf['session_inc'] = './sites/all/modules/cache/session.inc';
$conf['cache_settings'] = array(
'engines' => array(
'db' => array(
'engine' => 'database',
'server' => array(),
'shared' => TRUE,
'prefix' => '',
),
'apc' => array(
'engine' => 'apc',
'server' => array(),
'shared' => TRUE,
'prefix' => '',
),
'memcache' => array(
'engine' => 'memcache',
'server' => array(
'localhost:11211',
'localhost:11212',
),
'shared' => TRUE,
'prefix' => '',
),
),
'schemas' => array(
'db' => array(
// Engines:
'db',
),
'apc' => array(
// Engines:
'apc',
),
'memcache' => array(
// Engines:
'memcache',
),
),
'bins' => array(
// Bin name => Schema name.
'default' => 'db',
'cache' => 'apc',
'cache_form' => 'memcache',
'cache_page' => 'memcache',
'cache_filter' => 'memcache',
),
);
?>
Пример 2 (использование нескольких программ кеширования; редкий случай, но может быть полезно):
<?php
$conf['cache_inc'] = './sites/all/modules/cache/cache.inc';
$conf['session_inc'] = './sites/all/modules/cache/session.inc';
$conf['cache_settings'] = array(
'engines' => array(
'apc-engine' => array(
'engine' => 'apc',
'server' => array(),
'shared' => TRUE,
'prefix' => '',
),
'memcache-engine' => array(
'engine' => 'memcache',
'server' => array(
'localhost:11211',
'localhost:11212',
),
'shared' => TRUE,
'prefix' => '',
),
'db-engine' => array(
'engine' => 'database',
'server' => array(),
'shared' => TRUE,
'prefix' => '',
),
),
'schemas' => array(
'apc-memcache-db-schema' => array(
// Engines:
// Primary cache.
'apc-engine',
// Secondary cache.
'memcache-engine',
// Another secondary cache, in case both APC and memcache fail.
'db-engine',
),
'apc-schema' => array(
// Engines:
'apc-engine',
),
'memcache-schema' => array(
// Engines:
'memcache-engine',
),
),
'bins' => array(
// Bin name => Schema name.
'default' => 'memcache-schema',
'cache' => 'apc-schema',
'cache_form' => 'apc-memcache-db-schema',
'cache_filter' => 'my-memcache',
),
);
?>
Дополнительную информацию вы можете найти в файле README.txt.