О сервисах кеширования
Рассказываем, для чего нужны сервисы кеширования, как их установить и настроить
Про кеш, но не про деньги?!
Кеш — это высокоскоростной уровень хранения данных, причем временного характера. То есть, сохраняется, отдается по требованию, а через некоторое время удаляется или перезаписывается. С помощью кеша намного быстрее можно получить доступ к информации, чем к основному ее месту хранения. Соответственно, сайт или приложение начинает работать быстрее.
Кешируются результаты запросов к базам данных, вычислений, требовательных к ресурсам, запросы к API и ответы на них, такие веб-артефакты, как файлы HTML, JavaScript и изображения.
Преимущества кеширования:
- производительность сайта или приложения увеличивается
- снижаются затраты ресурсов на базы данных
- уменьшается нагрузка на сервер
- пользователь доволен быстрой работой сайта или приложения
Наиболее популярные сервисы кеширования — Memcached и Redis: они, кстати, у нас тоже есть.
Memcached
Memcached — сервер кеширования данных в оперативной памяти, с помощью которого можно добиться увеличения скорости работы сайта и снижения нагрузки на сервер.
Для использования Memcached требуется модуль PHP. На наших серверах установлено два таких модуля — Memcache и memcached. Оба можно использовать.
Его очень быстро подключить, выбрав нужный объем памяти. Определить подходящий размер кеша можно просто создав файл memcache.php в корневом каталоге файла и выполнив проверочный скрипт:
«unix:///home/login/tmp/memcached.sock» — эта строчка может отличаться у разных хостингов, у нас login просто нужно заменить на логин вашего аккаунта. Обратиться к скрипту можно из браузера по ссылке: http://domain.ru/memcache.php , где domain.ru — домен вашего сайта.
Значение в графе «Используется памяти» должно быть больше нуля. Если оно близко к максимальному объему памяти, нужно увеличить размер кеша.
Скрипт работает на любом хостинге, не только нашем. Но если что-то не получится, всегда можно обратиться в поддержку. Или просто переехать к нам, а мы уже все сделаем ;)
Затем нужно указать путь до сокета в скрипте, который подключается к кеширующему серверу. В зависимости от модуля кеширования путь будет выглядеть по-разному.
Так он выглядит у нас:
- Для Memcache: unix:///home/login/tmp/memcached.sock
- Для memcached: /home/login/tmp/memcached.sock:0
Вместо login нужно поставить логин аккаунта.
Если ваш сайт работает на CMS, ничего страшного — Memcached тоже с ними взаимодействует. Просто процесс настройки у каждой CMS несколько отличается — чуть больше об этом можно почитать в нашей инструкции. В будущем и здесь опубликуем подобные статьи.
Redis
Redis — быстрое хранилище данных в оперативной памяти сервера. Используется в качестве системы управления базами данных, для кеширования веб-страниц или хранения временной быстроизменяющейся информации.
Большинство языков программирования имеют расширения для работы с Redis, например, у PHP существует модуль PhpRedis.
Подключить Redis тоже очень просто, указав путь до сокета. У нас он выглядит так:
/home/login/tmp/redis.sock
Этот путь не будет сильно отличаться у других провайдеров.
Утилитой redis-cli можно сохранять, считывать, удалять данные, подключившись к серверу по SSH. Например, командой ниже можно подключиться к серверу Redis и проверить, используется ли хранилище сайтом или приложением:
redis-cli -s /home/login/tmp/redis.sock monitor
Также с помощью этой утилиты можно проверить объем используемой памяти:
redis-cli -s /home/login/tmp/redis.sock info memory
В строке used_memory_human можно увидеть количество потребляемой памяти:
Также при помощи Redis можно настроить хранение PHP-сессий. Для этого необходимо добавить в конфигурационный файл .htaccess директивы:
Как подключить кеширование в CMS?
Что у Memcached, что у Redis модель настройки одинаковая. Поэтому рассмотрим наиболее популярные CMS и подключение в них кеширования.
В Wordpress нет встроенных механизмов подключения к кеширующему серверу, поэтому нужно использовать специальный плагин, например, W3 Total Cache. Он подходит и для Redis, и для Memcached.
Настройка подобного плагина зависит от сайта, единого алгоритма не существует, но есть два общих пункта, которые стоит выполнить для любых проектов: включить кеширование страниц (Page cache) и запросов к базе данных (Database cache). Когда плагин установится, в боковом меню появится пункт Performance. В нем будут General Settings, а еще дальше — блок Page cache. Там нужно включить кеширование (Enable) и выбрать метод — Memcached или Redis, в зависимости от того, что вы используете. То же самое нужно провернуть в блоке Database cache.
В Cache Preload нужно указать интервал очистки на 86400 секунд (сутки).
В блоке Advance нужно указать путь до сокета (Memcached hostname или redis hostname) и максимальный срок существования объектов в кеше на 21600 секунд (6 часов). Проверьте правильность пути до сокета, нажав на кнопку «Test» рядом.
В Joomla! можно включить Memcached или Redis в разделе «Система» административной части сайта. Там же настраивается кеширование.
В старых версиях Joomla! ниже 2.5 нужно еще добавить строки в конфигурационном файле:
public $memcache_server_host = 'unix:///home/login/tmp/memcached.sock';
public $memcache_server_port = '0';
Путь также может отличаться на разных хостингах. У нас вместо login нужно указать логин своего аккаунта.
Особых сложностей установка Memcache и Redis не должна вызвать, а пользы от сервисов огромная. Но если все-таки какие-то вопросы появятся, всегда можно обратиться к подробным инструкциям в нашей Базе знаний или просто обратиться в поддержку.
Подключайте кеширование и смотрите, как летают ваши сайты!