Найти в Дзене
Beget

Memcached: установка и настройка сервиса кеширования данных

В статье мы расскажем, что такое Memcached, зачем он нужен и как влияет на работу некоторых популярных CMS. Кеширование данных – немаловажный момент в работе любого веб-проекта. С ростом посещаемости повышаются требования к ресурсам сервера, а также увеличивается время генерации страницы. Кеширование как раз решает эти проблемы. Распространенным ПО является Memcached. С ростом посещаемости повышаются требования к ресурсам сервера, а также увеличивается время генерации страницы. Кеширование как раз решает эти проблемы. Распространенным ПО является Memcached. Memcached – программное обеспечение, реализующее сервис кеширования данных в оперативной памяти на основе хеш-таблицы. Проще говоря, когда страница сгенерирована, благодаря кешированию данных она помещается в оперативную память, а при последующем обращении к странице незачем ее генерировать снова, затрачивая время и ресурсы сервера, – она попросту берется из Memcached. Сама технология не предполагает разделение данных, тем более – р
Оглавление

В статье мы расскажем, что такое Memcached, зачем он нужен и как влияет на работу некоторых популярных CMS.

Кеширование данных – немаловажный момент в работе любого веб-проекта. С ростом посещаемости повышаются требования к ресурсам сервера, а также увеличивается время генерации страницы. Кеширование как раз решает эти проблемы. Распространенным ПО является Memcached.

С ростом посещаемости повышаются требования к ресурсам сервера, а также увеличивается время генерации страницы. Кеширование как раз решает эти проблемы. Распространенным ПО является Memcached.

Memcached – программное обеспечение, реализующее сервис кеширования данных в оперативной памяти на основе хеш-таблицы. Проще говоря, когда страница сгенерирована, благодаря кешированию данных она помещается в оперативную память, а при последующем обращении к странице незачем ее генерировать снова, затрачивая время и ресурсы сервера, – она попросту берется из Memcached.

Сама технология не предполагает разделение данных, тем более – разделение доступа. В рамках одного веб-сервера любой пользователь может применять Memcached, в том числе модифицировать и удалять любые данные. Несмотря на то, что в Memcached не хранят критичные данные, это может не самым положительным образом сказаться на работе сайта.

Мы решили исправить этот недостаток. Используя технологию контейнеров Docker, мы создали специальный сервис – и теперь каждый может установить свой личный Memcached, в котором будут гарантированно только ваши данные.

Подключить персональный Memcached можно в панели управления, в разделе “Сервисы”.

Для установки доступно несколько тарифов:
128 Мб - 2 руб./день
256 Мб - 4 руб./день
1024 Мб - 9 руб./день

-2

Для многих CMS и фреймворков уже существуют механизмы для работы с Memcached – как встроенные, так и с помощью сторонних плагинов. Ниже мы рассмотрим процесс подключения Memcached в популярных CMS.

Настройка Memcached для Bitrix

Для подключения в CMS Bitrix Memcached необходимо отредактировать файл bitrix/php_interface/dbconn.php (если версия ядра меньше 14.0) либо bitrix/.settings_extra.php (если версия ядра выше 14.0). Если файл bitrix/.settings_extra.php отсутствует, то его необходимо создать.

Версию ядра можно посмотреть в разделе администрирования сайта, по умолчанию это ссылка вида:

http://site.ru/bitrix/admin/index.php

-3

Отредактировать необходимый файл можно, подключившись к серверу по SSH, используя утилиту PuTTy, или через файловый менеджер, который встроен в панель управления хостингом для сайта.

-4

Если редактируется файл ./bitrix/php_interface/dbconn.php (версия ядра меньше 14.0), то следует добавить строки:

define("BX_CACHE_TYPE", "memcache"); define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01"); define("BX_MEMCACHE_HOST", "127.0.0.1");

Если редактируется файл ./bitrix/.settings_extra.php (версия ядра выше 14.0), то следует добавить строки:

<?php
return array(
'cache' => array(
'value' => array (
'type' => 'memcache',
'memcache' => array(
'host' => '127.0.0.1',
'port' => '11211'
),
'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
),
),
);
?>

В случае успешного подключения в разделе Производительность > Панель производительности > Битрикс будет указан соответствующий коннектор в поле “Хранение кеша”.

На этом настройку в Битрикс Memcached можно считать завершенной, переходим к следующей CMS.

Настройка Memcached для CMS WordPress

WordPress “из коробки” не поддерживает работу с Memcached, однако богатая экосистема плагинов позволяет решить данную проблему. Чтобы подключить к WordPress Memcached, в качестве плагина в рамках данной статьи мы будем использовать W3 Total Cache, однако если данный вариант вам не подходит по той или иной причине, рекомендуем воспользоваться поиском по базе плагинов.

Обратите внимание!

При поиске плагина стоит обращать внимание на дату последнего обновления и последнюю протестированную версию, чтобы избежать незакрытых уязвимостей и конфликта с новыми версиями ядра.

Для установки плагина перейдите в раздел “Плагины” и нажмите “Добавить плагин”:

-5

Введите в поиске “W3 Total Cache” и нажмите “Установить сейчас”.

-6

По завершении установки активируйте плагин:

-7

При первой установке плагин предложит воспользоваться руководством по настройке:

-8

В процессе тестирования на каждом этапе доступен выбор механизма кеширования. В данном случае нас интересует Memcached:

-9

По завершении настройки будет показан итоговый отчет:

-10

При необходимости вы всегда можете запустить данное руководство повторно, выбрав соответствующий пункт в левом меню:

-11

Также можно изменить метод кеширования для любого из пунктов вручную – в разделе “Основные настройки”:

-12

Настройка Memcached для Joomla

В Joomla кеширование Memcached возможно в экспериментальном режиме.

Для настройки кеширования авторизуйтесь в админ-панели сайта.

Обратите внимание!

Joomla поддерживает использование только библиотеки php memcached, которая недоступна в режиме mod_php на версиях 8.2 и выше. Для ее использования на виртуальном хостинге потребуется понизить версию php либо переключиться на режим CGI – данные действия доступны в разделе “Сайты” панели управления. Если перечисленные варианты вам не подходят, рекомендуем рассмотреть использование Redis в качестве сервиса кеширования.

После авторизации перейдите в раздел “Система” > “Общие настройки”.

-13

Затем переключитесь на вкладку “Система”. В разделе “Параметры кеширования” в выпадающем меню “Системное кеширование” выберите “Прогрессирующее”:

-14

В появившемся меню “Обработчик кеширования” выберите “Memcached”:

-15

Сохраните настройки.

На этом подключение Memcached к Joomla завершено.

ModX Revolution и Memcached

Обратите внимание!

В данной статье мы рассматриваем процесс подключения сервиса с использованием модуля php memcached, который недоступен в режиме mod_php на версиях 8.2 и выше. Для его использования на виртуальном хостинге потребуется понизить версию php либо переключиться на режим CGI – данные действия доступны в разделе “Сайты” панели управления.

Для подключения Memcached к ModX Revolution необходимо выполнить следующие действия.

Откройте административную панель вашего сайта, после чего перейдите в раздел “Системные настройки”:

-16

Найдите параметр “cache_handler”:

-17

Кликните на шестеренку справа. В строке “Значение” необходимо изменить параметр в соответствии с вашей версией CMS. Версия CMS указана рядом с логотипом в верхнем левом углу:

-18
-19

Для ModX версии 3 и выше укажите параметр xPDO\Cache\xPDOMemCached в строке “Значение”.

Обратите внимание!

Для ModX версии 2 и ниже укажите параметр cache.xPDOMemcached в строке “Значение”.

-20

Готово! Если несколько Ваших сайтов используют Memcached, то нужно будет так же указать префикс для каждого из сайтов, чтобы они не “тянули” данные друг друга. Сделать это можно создав параметр "cache_prefix" с значением domain_, где domain - название вашего сайта.

Кликните Создать в этом же разделе:

-21

В открывшемся окне укажите необходимые параметры и выберите пространство имен core:

-22

Сохраните изменения.

На этом настройка Memcached в ModX Revolution завершена.

Drupal и Memcached

Обратите внимание!

Для установки модуля Memcached потребуется локально установленный Composer версии 2 и выше. О том, как его установить, вы можете прочитать в нашей статье.

Подключитесь к серверу по SSH либо воспользуйтесь терминалом в панели управления. Перейдите в директорию сайта командой:

cd директория_сайта/public_html

Затем установите модуль Memcached. При необходимости скорректируйте версию php на актуальную для вашего сайта:

php8.2 ~/.local/bin/composer require drupal/memcache

Сделайте файл sites/default/settings.php доступным для редактирования, выполнив команду:

chmod 700 sites/default/settings.php

Откройте в удобном вам текстовом редакторе файл и добавьте в него следующие строки:

$settings['memcache']['servers'] = ['127.0.0.1:11211' => 'default'];
$settings['memcache']['bins'] = ['default' => 'default'];
$settings['cache']['default'] = 'cache.backend.memcache';
$settings['container_yamls'][] = DRUPAL_ROOT . '/modules/contrib/memcache/memcache.services.yml';

И измените права обратно, сделав его доступным только для чтения:

chmod 400 sites/default/settings.php

-23

Найдите в списке модули Memcached и Memcached Admin, включите их и сохраните изменения. На этом настройка Memcached в Drupal завершена.

Заключение

В этой статье мы рассказали о важности кеширования для сайта, как работает Memcached, а также описали процесс подключения сервиса на виртуальном хостинге в популярных CMS.

Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью или наши продукты с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.