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:
Для того, чтобы сохранить данные, используется команда add. У неё такой синтаксис:
add имя_ключа флаги время_хранения размер_данных
данные
Флаги - это целое число, которое хранится вместе с данными, и вместе с ними возвращается пользователю, можно просто оставить 0. Время хранения - это время в секундах, сколько будут хранится эти данные, 0 означает вечно. Размер данных в байтах определяет, сколько памяти будет задействовано под эти данные. Далее нужно нажать Enter и ввести данные, которые нужно сохранить. Например, сохраним строку memcached в ключе key навсегда:
Получить значение сохранённого ключа можно командой get:
А удалить этот ключ командой delete:
А вот посмотреть список всех ключей в Telnet так просто не получится. Сначала нужно посмотреть список хранилищ:
А затем командой stats cachedump можно вывести список ключей хранилища. Первый параметр - это идентификатор хранилища, а второй - лимит ключей для вывода:
Для выхода наберите команду 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():
Выводы
В этой статье мы разобрали, как выполняется установка Memcached Ubuntu, а также как использовать этот сервис для кэширования данных из командной строки или в PHP. Не забудьте убедиться, что сервис слушает подключения только на локальном IP- адресе, поскольку здесь нет аутентификации, и к вашим данным смогут получить доступ другие пользователи. Также это может быть небезопасным из-за того, что в Memcached были найдены уязвимости, которые позволяют осуществлять атаку типа отказ в обслуживании.
Чего-то у тебя тут опечаток много. Там, где про подключение по telnet, в команде пропущена буква t, в самом начале статьи memchahed - это сервЕР, а не сервИС
Вот, сам уже опечатался, не memchahed a memchached =)
Сервер, сервис, нет разницы. А telnet исправил.
"Настройка Memcached Ubuntu выполняется через файл /etc/memcahced.conf"
Тоже опечаточка, правильно memcaCHed а не memcaHCed =)
в заголовке кстати тоже ошибка:
"Memchached - это популярный сервер"
Memcached - правильно