Оптимізуйте продуктивність своєї бази даних за допомогою сервера Memcached з додатками PHP і Python
Якщо ви коли-небудь відчували біль від високого навантаження на базу даних, що спричиняло уповільнення роботи ваших веб-програм, і задавалися питанням: «Чи є спосіб зменшити затримку, спричинену запитами БД?», тоді відповідь на це запитання — ствердна. Memcached – це дружній демон кешу пам’яті сусідів, щоб вирішити всі ваші проблеми! Кешування БД є одним із найпростіших методів для полегшення навантаження на БД і прискорення динамічних веб-додатків.
Memcached визначає себе як високопродуктивну систему кешування об’єктів розподіленої пам’яті, загальну за своєю природою, але спочатку призначену для прискорення динамічних веб-додатків шляхом зменшення навантаження на базу даних. Розроблено Бредом Фіцпатріком для його веб-сайту LiveJournal у 2003 році.
У цій статті ми розглянемо, як встановити та налаштувати Memcached в Ubuntu 20.04, а також розглянемо його клієнти для певної мови.
Передумови
Система, встановлена з Ubuntu 20.04 з користувачем з правами адміністратора, тобто a sudo
користувач.
Установка
Memcached доступний в офіційному репозиторії Ubuntu 20.04, на додаток до Memcached ми також збираємося встановити інструмент CLI, відомий як libmemcached-tools
для керування Memcached. Просто запустіть наступну команду, щоб встановити обидва
sudo apt встановити memcached libmemcached-tools
Перевірте встановлення
Після завершення інсталяції демон Memcached сам запускається у фоновому режимі. Щоб перевірити встановлення, ми можемо використовувати команду from libmemcached-tools
пакет, щоб отримати статистику сервера Memcached. Або біжи
memcstat --сервери localhost
або
memcstat --сервери 127.0.0.1
The memcstat
команда показує статистику запущеного сервера. Наведена вище команда призведе до виведення, яке відображатиметься нижче.
Різна статистика, наприклад час роботи
за секунди, версія
і pid
буде відображатися як вихід. Однак, якщо вивід не відображається, можливо, Memcached не запущено. Таким чином, ви повинні виконати таку команду, щоб запустити сервер Memcached.
sudo systemctl запустити memcached
Щоб запустити сервер Memcached під час запуску системи, скористайтеся такою командою.
sudo systemctl увімкнути memcached
Налаштування Memcached
Якщо у вас встановлено memcached на самому сервері веб-сайту, немає необхідності змінювати файл конфігурації, оскільки memcached попередньо налаштований для роботи з локальним хостом.
З іншого боку, якщо ви встановили Memcached в окремій системі, вам потрібно буде змінити конфігурацію, щоб дозволити віддаленому серверу доступ до сервера Memcached.
Налаштування віддаленого доступу до сервера Memcached
Memcached вразливий до атак DDoS (розподілена відмова в обслуговуванні). Неправильне правило брандмауера та відкриті порти UDP залишать ваш сервер відкритим і вразливим до DDoS-атак.
Щоб зменшити ризик, ми можемо або вимкнути протокол UDP для Memcached в конфігурації, або налаштувати брандмауер лише для дозволу надійних серверів.
З коробки Ubuntu постачається без відкритих портів TCP або UDP. Крім того, демон брандмауера ufw
(нескладний брандмауер) не ввімкнено за замовчуванням.
Ми збираємося ввімкнути брандмауер і налаштувати конфігурацію Memcached, щоб ми могли пом’якшити вразливість DDoS.
По-перше, увімкніть ufw
виконавши таку команду:
sudo systemctl увімкнути ufw
Потім почніть ufw
сервіс, виконавши команду нижче:
sudo systemctl start ufw
Коли брандмауер працює, ми нарешті можемо налаштувати правила брандмауера. По-перше, увімкніть порт 22, щоб дозволити підключення SSH. SSH потрібен для віддаленого доступу до потрібного сервера.
sudo ufw дозволити 22
По-друге, вам потрібно знати IP-адресу клієнта, тобто хост веб-програми та IP-адресу сервера, тобто сервера Memcached.
Для цього прикладу припустимо IP-адресу клієнта 192.168.0.4
і IP-адреса сервера Memcached 192.168.0.5
в локальній мережі.
Отже, щоб дозволити віддалений доступ сервера memcached до сервера клієнта, виконайте:
sudo ufw дозволити з 192.168.0.4 до будь-якого порту 11211
Замініть 192.168.0.4
з бажаною IP-адресою клієнта.
Далі відредагуйте файл конфігурації Memcached, розташований за адресою /etc/memcached.conf
бігаючи нано
команда.
sudo nano /etc/memcached.conf
The memcached.conf
файл конфігурації відкриється в редакторі nano, знайдіть файл -l 127.0.0.1
рядок у конфігурації та замініть 127.0.0.1
з вашим IP-адресом сервера Memcached або в цьому випадку 192.168.0.5
.
Після заміни прес ctrl+o
щоб записати в конфігураційний файл і натиснути Enter, натисніть ctrl+x
щоб вийти з nano.
Перезапустіть сервер Memcached і ufw
брандмауер, виконавши команду нижче.
sudo systemctl перезапустити memcached ufw
Тепер ми закінчили встановлення та налаштування сервера Memcached на Ubuntu 20.04.
Підключення до сервера Memcached
Щоб використовувати сервер Memcached, вам потрібно буде встановити клієнт для певної мови. На щастя, Memcached підтримує багато популярних мов.
Отже, давайте подивимося, як встановити php
і python
клієнт для Memcached.
PHP є найпопулярнішою мовою сценаріїв на стороні сервера, і Memcached в основному використовується веб-розробниками для підвищення продуктивності сервера веб-програм, що працюють на основі PHP.
Щоб встановити підтримку memcached в php, запустити:
sudo apt встановити php-memcached
Python також має кілька бібліотек, які можуть працювати та взаємодіяти з сервером Memcached, наприклад pymemcached
або python-memcached
.
Ви можете встановити memcached для python, виконавши такі команди pip:
pip встановити pymemcache
pip встановити python-memcached
На завершення ми розглянули інсталяцію, конфігурацію та кілька мовних клієнтів Memcached в Ubuntu 20.04.
Щоб дізнатися більше про те, як використовувати Memcached, перегляньте Memcached Wiki.