Искать в Базе знаний

Кеширование Memcached

Memcached — сервер кеширования данных в оперативной памяти. С его помощью можно добиться увеличения скорости работы сайта и снижения нагрузки на сервер.
Для использования Memcached требуется модуль PHP. На наших серверах установлено два таких модуля — Memcache и memcached. Вы можете использовать оба.
Чтобы подключить модуль перейдите в раздел «Сайты», который находится в левом боковом меню. В этом разделе нажмите на кнопку «Кеширование», после чего откроется страница с доступными вариантами объема памяти (128 МБ, 256 МБ, 1024 МБ). Выберите подходящий объем памяти, исходя из ваших потребностей. Если вы не уверены в выборе объема, можно воспользоваться проверочным скриптом для определения оптимального размера кеша.
В скрипте, который подключается к кеширующему серверу, укажите путь до сокета:
  • Для Memcache:
    unix:///home/login/tmp/memcached.sock
  • Для memcached:
    /home/login/tmp/memcached.sock:0
Сайты на популярных CMS тоже могут работать с Memcached. Рассмотрим процесс настройки для проектов, созданных с помощью Wordpress, Joomla! и 1C-Битрикс.

WordPress

В CMS Wordpress нет встроенных механизмов подключения к кеширующему серверу, поэтому используйте специальный плагин, например, W3 Total Cache.
Настройка плагина зависит от сайта: не существует алгоритма, который подошел бы каждому проекту. В общем случае рекомендуем включить кеширование страниц (Page cache) и запросов к базе данных (Database cache).
После установки плагина в боковом меню появится пункт «Performance». Перейдите в раздел «General Settings» и найдите блок «Page cache». Включите кеширование (Enable) и в выпадающем списке выберите метод — Memcached. Нажмите «Save all settings».
content-image
Выполните те же действия в блоке «Database cache».
В боковом меню перейдите в раздел «Page cache». Если на сайте доступна регистрация пользователей, отключите опцию «Don't cache pages for logged in users». Нажмите «Save all settings».
content-image
В блоке «Cache Preload» установите интервал очистки кеша — 86400 секунд (сутки). Сохраните изменения.
content-image
Перейдите к блоку «Advanced». В строке «Memcached hostname» укажите путь до сокета memcached и нажмите «Test». Сокет указан корректно, если в результате получено значение «Test passed».
content-image
В строке «Maximum lifetime of cache objects» установите время — 21600 секунд (6 часов). Опуститесь в нижнюю часть страницы и нажмите «Save all settings».
content-image
Перейдите в раздел «Database cache» и в строке «Memcached hostname» укажите путь до сокета memcached. Сохраните изменения.
Плагин настроен.

Joomla!

CMS Joomla! поддерживает работу с Memcached по умолчанию.
Чтобы включить кеширование, авторизуйтесь в административной части сайта и перейдите в раздел «Система» → «Общие настройки», вкладка «Система».
content-image
В блоке «Настройка кэша» укажите параметры, как на скриншоте. В поле «Сервер Memcache(d)» введите путь до сокета:
content-image
Сайт настроен для работы с Memcached.
Для настройки старых версий Joomla! (ниже 2.5) добавьте в конфигурационный файл configuration.php строки:
public $memcache_server_host = 'unix:///home/login/tmp/memcached.sock';
public $memcache_server_port = '0';
«login» замените на логин вашего аккаунта хостинга.

1С-Битрикс

Чтобы подключить к Memcached сайт на CMS 1С-Битрикс, создайте в каталоге ~/public_html/bitrix файл .settings_extra.php и добавьте в него инструкции:
<?php
return array (
    'cache' => array(
        'value' => array (
            'type' => 'memcache',
            'memcache' => array(
                'host' => 'unix:///home/login/tmp/memcached.sock',
                'port' => '0'
            ),
            'sid' => $_SERVER["DOCUMENT_ROOT"]."login"
        ),
    ),
);
В административной части сайта перейдите в раздел «Настройки» → «Производительность» → «Панель производительности», вкладка «Битрикс (оптимально)», и проверьте, указано ли значение «memcache» в пункте «Хранение кеша».
content-image
Вернитесь в раздел «Аккаунт» → «Услуги» Панели управления хостинга и перезагрузите Memcache.

Проверка работы Memcached

Проверьте корректность настроек с помощью специального скрипта.
В корневом каталоге сайта создайте файл memcache.php и поместите в него следующий код:
<?php
$memcache_obj = new Memcache;
$memcache_obj->addServer('unix:///home/login/tmp/memcached.sock', 0);
$status = $memcache_obj->getStats();
$MBUsed= (float)$status["bytes"]/(1024*1024);
$MBSize=(float) $status["limit_maxbytes"]/(1024*1024);
?>

Статистика Memcache:
<table border='1'>
    <tr><td>Версия Memcache сервера</td><td> <?=$status ["version"];?></td></tr>
    <tr><td>Время работы Memcache (в секундах) </td><td><?=$status ["uptime"];?></td></tr>
    <tr><td>Максимальный объем памяти для Memcache</td><td><?=$MBSize;?> Мб</td></tr>
    <tr><td>Используется памяти</td><td><? printf("%.2f",$MBUsed);?> Мб</td></tr>
</table>
В строке:
$memcache_obj->addServer('unix:///home/login/tmp/memcached.sock', 0);
замените «login» на логин вашего аккаунта хостинга. Сохраните изменения.
Обратитесь к скрипту из браузера по ссылке: http://domain.ru/memcache.php, где domain.ru — доменное имя сайта.
content-image
Значение в графе «Используется памяти» должно быть больше нуля. Если оно близко к максимальному объему памяти, увеличьте размер кеша в Панели управления.
2005–2025 ООО «СПРИНТХОСТ.РУ»
Входит в Реестр аккредитованных ИТ-компаний
и Реестр провайдеров хостинга
Лицензия №162552