Что такое memcached, как его использовать и зачем
В процессе работы операционной системы образуется множество короткоживущих данных. По умолчанию все они сбрасываются в специальные каталоги на диске. Отрицательная сторона этого подхода – обращение к диску достаточно медленны даже на современных SSD. Способ "ускориться" - использование для хранения временных файлов оперативной памяти, например, через механизм кеширования.
Требования к серверу
Для установки кэширования должны удовлетворяться следующие условия:
- Сервер под Linux, например. Centos 7
- root-доступ или учетная запись с правом sudo
- Опционально - iptables или другой брандмауэр
Установка программы и сопутствующих инструментов
Настройка предельно проста, фактически это "однострочная" команда:
sudo -s
yum install memcached -y
Первичная настройка
Служба memcached, будучи установленной, считывает все свои настройки из файла /etc/sysconfig/memcached. Наиболее полезные флаги:
CACHESIZE # Разрешенный объем оперативной памяти
PORT # TCP-порт, который "слушает" сервис
-l # Используемый IP-адрес, обычно или 127.0.0.1 (для локальных подключений), или "внешний" адрес, нужный для подключений извне
MAXCONN # сколько подключений возможно одномоментно
-S # эта опция нужна для включения авторизации (будет описано далее)
Чтобы проходили входящие подключения, их нужно разрешить в настройках брандмауэра:
firewall-cmd --permanent --zone=public --add-port=<ПОРТ>/tcp
Вопросы безопасности
В случае, если сервер кеширует "внешние" данные, хорошим тоном считается заботиться о безопасности, например предоставлять доступ только для авторизованных пользователей. Настраивается ограничение доступа следующим образом:
- Установка сопутствующего ПО:
yum install cyrus-sasl-devel cyrus-sasl-plain -y
- Создание файлов конфигурации:
mkdir -p /etc/sasl; nano /etc/sasl/memcached.conf
- Установка системных разрешений на файл и создание отдельного пользователя для авторизации:
saslpasswd2 -a memcached -c -f /etc/sasl/sasldb
chown memcached:memcached /etc/sasl/sasldb
- Теперь нужно "включить" авторизацию на уровне кеширующего сервиса. Нужно добавить в файл /etc/sysconfig/memcached флаг -S
- Наконец, финальный шаг - перезапуск службы:
service memcached restart
Проверка результата
После завершения установки и настройки нелишним будет проверить свою роботу. Просто дайте команду:
netstat -tulpn | grep cach
Если вы увидите картинку наподобие изображенной на следующем скриншоте, вас можно поздравить:
Общие итоги
В рамках данной статьи мы рассмотрели что такое кеширование, для чего его стоит использовать, как установить, настроить и обезопасить наиболее распространенный программный пакет, используемый в таких целях - memcached.