Главная / Unix / Установка Memcached в Ubuntu

Установка Memcached в Ubuntu

Memchached — это популярный сервер кэширования данных в оперативной памяти. С помощью него можно существенно увеличить производительность различных веб-приложений. Сам по себе Memcached позволяет только сохранять пары ключ-значение в памяти и быстро получать к ним доступ. Обычно Memcached используется вместе с каким-либо языком программирования. Например с Php, Python или серверным JavaScript.

Также сервис может использоваться для кэширования различных объектов веб-серверами, такими, как Apache или Nginx. В этой статье мы разберём установку Memcached в Ubuntu 18.04, а также основные настройки программы.

Содержание статьи:

Как установить Memcached в Ubuntu

1. Установка сервиса

Сама по себе установка Memcached не вызовет проблем. Вам достаточно выполнить такую команду:

sudo apt install memcached libmemcached-tools

Вместе с самим сервисом мы устанавливаем набор дополнительных утилит для более простого управления Memcached. На этом установка завершена.

2. Настройка Memcached

Настройка Memcached Ubuntu выполняется через файл /etc/memcahced.conf. В этом файле содержаться опции, которые будут переданы сервису при запуске:

  • -d — работать в режиме сервиса;
  • -v — режим более подробного вывода информации;
  • -vv — ещё более подробный вывод информации;
  • -m — количество оперативной памяти, которую будет использовать сервис, рекомендую увеличить этот параметр, так как значения 64 мегабайта, установленных по умолчанию, будет мало;
  • -p — порт, на котором будет работать сервис;
  • -u — пользователь, от имени которого запущен сервис;
  • -l — IP-дрес, на котором Memcached будет ожидать соединения, лучше использовать 127.0.0.1, чтобы из внешней сети ни у кого не было доступа к вашим данным;
  • — количество одновременных подключений;
  • -P — путь к PID-файлу сервиса в файловой системе.

Таким образом, большинство опций можно оставить по умолчанию. Изменить нужно только объём оперативной памяти и IP-адрес.

3. Запуск сервиса

Даже если сервис был запущен по умолчанию, после изменения настроек его нужно перезапустить:

sudo systemctl restart memcached

Можно ещё убедиться, что Memcached работает именно на том IP и порте, которые нам нужны:

ss -tlpn

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

memcstat --servers="127.0.0.1"

Работать с Memcached мы можем уже сейчас. Для этого нужно использовать Telnet. Подключаемся к серверу:

telnet localhost 11211

Если подключение прошло успешно, вы увидите такое сообщение:

Используйте команду stats, чтобы получить общую статистику, которую мы видели в выводе команды memcstat:

stats

Для того, чтобы сохранить данные, используется команда add. У неё такой синтаксис:

add имя_ключа флаги время_хранения размер_данных
данные

Флаги — это целое число, которое хранится вместе с данными, и вместе с ними возвращается пользователю, можно просто оставить 0. Время хранения — это время в секундах, сколько будут хранится эти данные, 0 означает вечно. Размер данных в байтах определяет, сколько памяти будет задействовано под эти данные. Далее нужно нажать Enter и ввести данные, которые нужно сохранить. Например, сохраним строку memcached в ключе key навсегда:

add key 0 0 9
memcached

Получить значение сохранённого ключа можно командой get:

get key

А удалить этот ключ командой delete:

delete key

А вот посмотреть список всех ключей в Telnet так просто не получится. Сначала нужно посмотреть список хранилищ:

stats items

А затем командой stats cachedump можно вывести список ключей хранилища. Первый параметр — это идентификатор хранилища, а второй — лимит ключей для вывода:

stats cachedump 1 100

Для выхода наберите команду quit. С помощью команды memcdump вы можете вывести список всех сохраненных ключей:

memdump --servers=127.0.0.1

А с помощью memccat можно вывести значение нужного ключа:

memccat key --servers=127.0.0.1

Но все эти возможности используются только для отладки. Для реального хранения данных используются клиенты memcached для разных языков программирования. Их очень просто установить. Давайте рассмотрим это на примере Php.

4. Настройка Memcached и Php

Давайте рассмотрим настройку библиотеки Memcached для Php. Чтобы её установить, выполните:

sudo apt install php-memcached

Затем перезапустите apache, если хотите использовать модуль на веб-сервере:

sudo systemctl restart apache2

Далее вы можете убедится, что модуль активирован, вызвав функцию phpinfo():

<?php phpinfo();?>

Выводы

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