Вы здесь

Cache

Система кеширования.

Модуль Cache связывает Друпал с другими системами кеширования, такими как APC, memcache или redis. Система кеширования Cache, начата как форк проекта Cache Router и предоставляет возможность использования функции page_fast_cache(). Сам по себе, модуль не содержит дополнительных обработчиков и хранит кеш в базе данных.

Возможности модуля

  • Дополнительная обработка кеша
  • Использование page_fast_cache()
  • Использование hook_requirements()
  • Альтернативное управление сессиями
  • Включенные патчи для улучшения быстродействия
  • Использование стандартного кеширования базы данных
  • Работа с дополнительными обработчиками кеша

Требования

По умолчанию, модуль не требует дополнительных программ для работы с кешем и использует для кеширования базу данных. Но если вы хотите использовать все возможности модуля, то вам будет нужно установить дополнительные программы (одну или несколько):

  • APC
  • memcache
  • redis

Установка модуль

Распакуйте модуль в папку дополнительных модулей
Внесите изменения в файл 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.