linux:webserver:memcached

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Наступна ревізія
Попередня ревізія
linux:webserver:memcached [28/05/2024 05:19] – створено osvexlinux:webserver:memcached [Невідома дата] (поточний) – зовнішнє редагування (Невідома дата) 127.0.0.1
Рядок 1: Рядок 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 были найдены уязвимости, которые позволяют осуществлять атаку типа отказ в обслуживании.
  
  • linux/webserver/memcached.1716873544.txt.gz
  • Востаннє змінено: 28/05/2024 02:19
  • (зовнішнє редагування)