Оптимизируйте производительность своей базы данных, используя сервер Memcached с вашими приложениями PHP и Python
Если вы когда-либо испытывали боль от высокой нагрузки базы данных, вызывающей замедление работы ваших веб-приложений, и задавались вопросом: «Есть ли способ уменьшить задержку, вызванную запросами к БД?», То ответ на этот вопрос - большой да. Memcached - дружелюбный демон кеширования соседней памяти здесь, чтобы решить все ваши проблемы! Кэширование БД - один из простейших методов уменьшения нагрузки на БД и ускорения динамических веб-приложений.
Memcached определяет себя как высокопроизводительную систему кэширования объектов с распределенной памятью, имеющую общий характер, но изначально предназначенную для ускорения динамических веб-приложений за счет уменьшения нагрузки на базу данных. Разработан Брэдом Фитцпатриком для своего веб-сайта LiveJournal в 2003 году.
В этой статье мы рассмотрим, как установить и настроить Memcached в Ubuntu 20.04, а также познакомимся с его языковыми клиентами.
Предпосылки
Система, установленная с Ubuntu 20.04 с пользователем с правами администратора, то есть судо
Пользователь.
Установка
Memcached доступен в официальном репозитории Ubuntu 20.04, в дополнение к Memcached мы также собираемся установить инструмент CLI, известный как libmemcached-инструменты
управлять Memcached. Просто выполните следующую команду, чтобы установить оба
sudo apt установить memcached libmemcached-tools
Проверить установку
После завершения установки демон Memcached запускается в фоновом режиме. Чтобы проверить установку, мы можем использовать команду из libmemcached-инструменты
пакет для получения статистики сервера Memcached. Либо беги
memcstat --servers localhost
или
memcstat - серверы 127.0.0.1
В memcstat
Команда показывает статистику запущенного сервера. Приведенная выше команда приведет к выводу, отображаемому ниже.
Различные характеристики, такие как время безотказной работы
в секундах, версия
и пид
будет отображаться как результат. Однако, если выходные данные не отображаются, возможно, Memcached не запущен. Следовательно, вы должны выполнить следующую команду, чтобы запустить сервер Memcached.
sudo systemctl start memcached
Чтобы запустить сервер Memcached при запуске системы, используйте следующую команду.
sudo systemctl включить memcached
Настройка Memcached
Если ваш memcached установлен на самом сервере веб-сайта, нет необходимости изменять файл конфигурации, поскольку memcached предварительно настроен для работы с localhost.
С другой стороны, если вы установили Memcached в отдельной системе, вам нужно будет изменить конфигурацию, чтобы разрешить удаленному серверу доступ к серверу Memcached.
Настройка удаленного доступа к серверу Memcached
Memcached уязвим для DDoS-атак (распределенного отказа в обслуживании). Неправильное правило брандмауэра и открытые порты UDP сделают ваш сервер открытым и уязвимым для DDoS-атак.
Чтобы снизить риск, мы можем либо отключить протокол UDP для Memcached в конфигурации, либо настроить брандмауэр только для разрешения доверенных серверов.
По умолчанию Ubuntu поставляется без открытых портов TCP или UDP. Кроме того, демон межсетевого экрана ufw
(несложный брандмауэр) по умолчанию не включен.
Мы собираемся включить брандмауэр и настроить конфигурацию Memcached, чтобы уменьшить уязвимость DDoS.
Сначала включите ufw
выполнив следующую команду:
sudo systemctl включить ufw
Затем запустите ufw
service, выполнив следующую команду:
sudo systemctl start ufw
Теперь, когда брандмауэр запущен, мы можем, наконец, настроить правила брандмауэра. Во-первых, включите порт 22, чтобы разрешить SSH-соединения. SSH необходим для удаленного доступа к желаемому серверу.
sudo ufw allow 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
В memcached.conf
файл конфигурации откроется в редакторе nano, найдите -l 127.0.0.1
строку в конфигурации и замените 127.0.0.1
с IP-адресом вашего сервера Memcached или в этом случае 192.168.0.5
.
После замены пресса ctrl + o
чтобы записать в файл конфигурации и нажать Enter, нажать ctrl + x
для выхода из нано.
Перезагрузите сервер Memcached и ufw
брандмауэр, выполнив следующую команду.
sudo systemctl перезапустить memcached ufw
На этом мы закончили установку и настройку сервера Memcached в Ubuntu 20.04.
Подключение к серверу Memcached
Чтобы использовать сервер Memcached, вам необходимо установить клиент для конкретного языка. К счастью, Memcached поддерживает многие популярные языки.
Итак, давайте посмотрим, как установить php
и питон
клиент для 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.