| Наступна ревізія | Попередня ревізія |
| linux:webserver:memcached [28/05/2024 05:19] – створено osvex | linux:webserver:memcached [Невідома дата] (поточний) – зовнішнє редагування (Невідома дата) 127.0.0.1 |
|---|
| ====== Memcached в Ubuntu ====== | ====== Memcached в Ubuntu ====== |
| | |
| | Джерело: |
| |
| [[https://losst.pro/ustanovka-memcached-v-ubuntu|https://losst.pro/ustanovka-memcached-v-ubuntu]] | [[https://losst.pro/ustanovka-memcached-v-ubuntu|https://losst.pro/ustanovka-memcached-v-ubuntu]] |
| | |
| | ==== 1. Установка сервиса ==== |
| | |
| | Сама по себе установка Memcached не вызовет проблем. Вам достаточно выполнить такую команду: |
| | |
| | ''sudo apt install memcached libmemcached-tools'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-16-41-52.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-16-41-52-1024x576.png?nolink&806x453 }}]] |
| | |
| | Вместе с самим сервисом мы устанавливаем набор дополнительных утилит для более простого управления 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-адрес. |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-16-57-36.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-16-57-36-1024x576.png?nolink&806x453 }}]] |
| | |
| | ==== 3. Запуск сервиса ==== |
| | |
| | Даже если сервис был запущен по умолчанию, после изменения настроек его нужно перезапустить: |
| | |
| | ''sudo systemctl restart memcached'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-16-58-56.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-16-58-56-1024x576.png?nolink&806x453 }}]] |
| | |
| | Можно ещё убедиться, что Memcached работает именно на том IP и порте, которые нам нужны: |
| | |
| | ''ss -tlpn'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-36-50.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-36-50-1024x576.png?nolink&806x453 }}]] |
| | |
| | Затем вы можете посмотреть статистику использования сервиса командой: |
| | |
| | ''memcstat –servers="127.0.0.1"'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-01-04.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-01-04-1024x576.png?nolink&806x453 }}]] |
| | |
| | Работать с Memcached мы можем уже сейчас. Для этого нужно использовать Telnet. Подключаемся к серверу: |
| | |
| | ''telnet localhost 11211'' |
| | |
| | Если подключение прошло успешно, вы увидите такое сообщение: |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-13-00.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-13-00-1024x576.png?nolink&806x453 }}]] |
| | |
| | Используйте команду stats, чтобы получить общую статистику, которую мы видели в выводе команды memcstat: |
| | |
| | ''stats'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-13-07.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-13-07-1024x576.png?nolink&806x453 }}]] |
| | |
| | Для того, чтобы сохранить данные, используется команда add. У неё такой синтаксис: |
| | |
| | ** <font inherit/inherit;;#ff6600;;inherit>add</font> |
| | <font inherit/inherit;;#339966;;inherit>имя_ключа</font> |
| | <font inherit/inherit;;#3366ff;;inherit>флаги</font> |
| | <font inherit/inherit;;#993366;;inherit>время_хранения</font> |
| | <font inherit/inherit;;#ffcc00;;inherit>размер_данных</font> ** \\ |
| | <font inherit/inherit;;#003300;;inherit>**данные**</font> |
| | |
| | Флаги - это целое число, которое хранится вместе с данными, и вместе с ними возвращается пользователю, можно просто оставить 0. Время хранения - это время в секундах, сколько будут хранится эти данные, 0 означает вечно. Размер данных в байтах определяет, сколько памяти будет задействовано под эти данные. Далее нужно нажать Enter и ввести данные, которые нужно сохранить. Например, сохраним строку memcached в ключе key навсегда: |
| | |
| | ''add key 0 0 9 \\ |
| | memcached'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-16-16.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-16-16-1024x576.png?nolink&806x453 }}]] |
| | |
| | Получить значение сохранённого ключа можно командой get: |
| | |
| | ''get key'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-29-00.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-29-00-1024x576.png?nolink&806x453 }}]] |
| | |
| | А удалить этот ключ командой delete: |
| | |
| | ''delete key'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-29-09.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-29-09-1024x576.png?nolink&806x453 }}]] |
| | |
| | А вот посмотреть список всех ключей в Telnet так просто не получится. Сначала нужно посмотреть список хранилищ: |
| | |
| | ''stats items'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-28-28.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-28-28-1024x576.png?nolink&806x453 }}]] |
| | |
| | А затем командой stats cachedump можно вывести список ключей хранилища. Первый параметр - это идентификатор хранилища, а второй - лимит ключей для вывода: |
| | |
| | ''stats cachedump 1 100'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-28-49.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-28-49-1024x576.png?nolink&806x453 }}]] |
| | |
| | Для выхода наберите команду **quit**. С помощью команды memcdump вы можете вывести список всех сохраненных ключей: |
| | |
| | ''memdump –servers=127.0.0.1'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-30-19.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-30-19-1024x576.png?nolink&806x453 }}]] |
| | |
| | А с помощью memccat можно вывести значение нужного ключа: |
| | |
| | ''memccat key –servers=127.0.0.1'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-30-47.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-30-47-1024x576.png?nolink&806x453 }}]] |
| | |
| | Но все эти возможности используются только для отладки. Для реального хранения данных используются клиенты memcached для разных языков программирования. Их очень просто установить. Давайте рассмотрим это на примере Php. |
| | |
| | ==== 4. Настройка Memcached и Php ==== |
| | |
| | Давайте рассмотрим настройку библиотеки Memcached для Php. Чтобы её установить, выполните: |
| | |
| | ''sudo apt install php-memcached'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-43-25.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-43-25-1024x576.png?nolink&806x453 }}]] |
| | |
| | Затем перезапустите apache, если хотите использовать модуль на веб-сервере: |
| | |
| | ''sudo systemctl restart apache2'' |
| | |
| | Далее вы можете убедится, что модуль активирован, вызвав функцию phpinfo(): |
| | |
| | ''<?php phpinfo();?>'' |
| | |
| | [[https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-47-15.png|{{ https://losst.pro/wp-content/uploads/2019/04/Snimok-ekrana-ot-2019-04-11-17-47-15-1024x576.png?nolink&806x453 }}]] |
| | |
| | ===== Выводы ===== |
| | |
| | В этой статье мы разобрали, как выполняется установка Memcached Ubuntu, а также как использовать этот сервис для кэширования данных из командной строки или в PHP. Не забудьте убедиться, что сервис слушает подключения только на локальном IP- адресе, поскольку здесь нет аутентификации, и к вашим данным смогут получить доступ другие пользователи. Также это может быть небезопасным из-за того, что в Memcached были найдены уязвимости, которые позволяют осуществлять атаку типа отказ в обслуживании. |
| |