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
Коментувати