Установка и настройка memcached для Drupal 7

Memcached — это программное обеспечение, позволяющее хранить данные в оперативной памяти в виде "ключ-значение" (хэш таблицы).
Memcached используется для кэширования данных в оперативной памяти, позволяя существенно ускорить работу веб-приложений, уменьшив нагрузку на базу данных.
Как уже было описано в статье Кэширование спасет ваш Drupal сайт Memcached можно использовать как кэширующий бэкенд для Drupal 7.

В этой статье мы рассмотрим установку Memcached в Debian и настройку как кэширующий бэкенд для Drupal 7.

Установка Memcached

Для установки memcached выполняем команду

aptitude install memcached php5-memcached

В файле конфигурации /etc/memcached.conf прописываем настройки

# Запуск memcached как демона
-d

# файл лога memcached
logfile /var/log/memcached.log

# Подробный вывод
# -v

# Максимально подробный вывод
# -vv

# Количество памяти, выделенной под memcached
# Memcached будет постепенно выделять этот объем оперативной памяти. 
-m 128

# Порт для подключения к Memcached
-p 11211 

# Пользователь, под который будет запущен демон Memcached
-u www-data

# IP на котором слушает демон
-l 127.0.0.1

# Можно ограничить количество подключений
# -c 1024

Перезапуск Memcached

/etc/init.d/memcached restart

Установка модуля Memcache для Drupal 7

Скачиваем и устанавливаем последнюю версию Drupal модуля Memcache, например с помощью drush

drush dl memcache

Для установки Memcache кэширующим класcом в файл settings.php прописываем следующие строки

  $conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
  $conf['cache_default_class'] = 'MemCacheDrupal';

Настройка модуля Memcache

Доступные серверы memcached указываются в массиве $conf в файле settings.php. Если не указать ниодного сервера, то по умолчанию будет использоваться локальный memcached сервер 127.0.0.1:11211. Поэтому если используется только локальный memcached сервер, то больше никаких настроек не требуется.

Использование нескольких серверов Memcached

Если используется более одного сервер memcached, то необходимо добавить два массива в файл settings.php, как указано в шаблоне:

$conf['memcache_servers'] = array(
  host1:port => cluster, 
  host2:port => cluster, 
  hostN:port => cluster
);
$conf['memcache_bins'] = array(
  bin1 => cluster, 
  bin2 => cluster, 
  binN => cluster
);

Описание:

  • Серверы Memcached описываются как host:port (Ip адрес:Порт).
  • Bins (бины) это группы данных, которые кэшируются вместе и называются как параметр $table в функции cached_set(). Например cache_filter, cache_menu. По умолчанию используется 'cache'.
  • Clusters (кластеры) — это группы серверов, которые функционируют как единый пул памяти.
  • Несколько Bins (бинов) могут быть назначены для одного Cluster.
  • Cluster (кластер) по умолчанию — 'default'.

Пример конфигурации c двумя кластерами 'default' и 'cluster2'. Пять memcached серверов поделены между двумя кластерами. Бины 'cache_filter' и 'cache_menu' размещены на 'cluster2', остальные бины размещены в 'default':

$conf['memcache_servers'] = array(
  '10.1.1.1:11211' => 'default',
  '10.1.1.1:11212' => 'default',
  '10.1.1.2:11211' => 'default',
  '10.1.1.3:11211' => 'cluster2',
  '10.1.1.4:11211' => 'cluster2'
);
$conf['memcache_bins'] = array(
  'cache' => 'default',
  'cache_filter' => 'cluster2',
  'cache_menu' => 'cluster2'
);

Использование сервера Memcached несколькими Drupal сайтами

Если требуется, чтобы несколько Drupal сайтов разделяли memcached сервер, то требуется указать уникальный префикс для каждого Drupal сайт в массиве $conf в файле settings.php, например:

$conf['memcache_key_prefix'] = 'something_unique';

(c)h ttp://drupal-admin.ru/blog/установка-и-настройка-memcached-для-drupal-7

Добавить комментарий

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.