Брэд Фитцпатрик разработал Memcached в 2003 году для сайта LiveJournal как мощную систему кэширования с открытым исходным кодом для повышения производительности динамических веб-приложений за счет снижения нагрузки на базу данных. С тех пор она стала жизненно необходимой для многих веб-сайтов и приложений с высокой посещаемостью. Прежде чем приступить к установке Memcached на Debian 12 Bookworm, Debian 11 Bullseye или Debian 10 Buster, давайте рассмотрим некоторые ключевые моменты, связанные с Memcached.
Ключевые особенности и преимущества:
- Масштабируемость: Memcached, обрабатывающий миллионы операций в секунду, идеально подходит для крупномасштабных веб-приложений и служб.
- Распределенное кэширование: благодаря архитектуре распределенного кэширования Memcached позволяет горизонтально масштабировать систему на нескольких серверах, увеличивая общую емкость кэша.
- In-Memory Storage: Являясь хранилищем ключевых значений в памяти, Memcached обеспечивает быстрый доступ к кэшированным данным, значительно снижая задержки в дисковых системах хранения.
- Простой API: Memcached предоставляет простой API, поддерживающий различные языки программирования, включая PHP, Python, Ruby и другие.
- Истечение срока действия кэша: Система позволяет разработчикам задавать время истечения срока действия кэшированных данных, что способствует автоматическому удалению из кэша устаревших или неактуальных данных.
- Легкий вес: При минимальной нагрузке на процессор и память Memcached эффективно работает на различных конфигурациях серверов, не отнимая при этом значительных системных ресурсов.
- Гибкие типы данных: Благодаря поддержке различных типов данных, таких как строки, целые числа и сложные объекты, Memcached является универсальным решением для различных случаев использования.
В следующем руководстве мы рассмотрим процесс установки Memcached на Debian 12 Bookworm, Debian 11 Bullseye или Debian 10 Buster, используя либо стандартный репозиторий apt, либо вручную загрузив и скомпилировав последние исходные тексты. После установки в статье будут предложены важные советы и рекомендации по настройке, которые помогут вам оптимизировать установку Memcached.
Установка Memcached на Debian 12, 11 или 10 с помощью APT
В этом разделе мы установим Memcached на систему Debian Linux с помощью менеджера пакетов APT. Это включает в себя обновление системных пакетов и установку Memcached с помощью некоторых полезных инструментов.
Шаг 1: Обновление системы Debian перед установкой Memcached
Чтобы убедиться, что у вас есть последние версии пакетов и обновления безопасности, начните с обновления системы Debian. Выполните следующую команду:
sudo apt update && sudo apt upgrade
Эта команда обновит список пакетов и обновит устаревшие пакеты до их последних версий.
Шаг 2: Установка Memcached и Libmemcached-tools на Debian
Debian включает Memcached в свои репозитории по умолчанию, что упрощает установку. Чтобы установить Memcached, выполните следующую команду:
sudo apt install memcached libmemcached-tools
Эта команда устанавливает как Memcached, так и пакет libmemcached-tools. Пакет libmemcached-tools предоставляет дополнительные утилиты командной строки, которые обеспечивают более широкие возможности взаимодействия и управления Memcached.
Установка Memcached на Debian 12, 11 или 10 из исходных текстов
В этом разделе рассматривается установка Memcached на систему Debian путём компиляции из исходного кода. Установка из исходных текстов может быть полезна, если вы хотите использовать последнюю версию Memcached или настроить сборку под конкретные требования.
Шаг 1: Загрузка исходного кода Memcached на Debian
Сначала посетите страницу последнего выпуска Memcached, чтобы найти текущую версию. Для непосредственной загрузки используйте следующую команду wget:
wget https://memcached.org/latest
Шаг 2. Распаковка архива с исходным кодом Memcached на Debian
Далее извлеките загруженный исходный код, выполнив следующую команду:
tar -xvf latest
Прежде чем продолжить, перейдите в распакованный каталог. Имя каталога зависит от загруженной версии:
cd memcached-{place version number here}
Замените {version_number} на фактический номер версии.
Шаг 3: Установка начальных пакетов, необходимых для компиляции Memcached
Перед компиляцией Memcached необходимо установить необходимые зависимости для сборки. Для их установки выполните следующую команду:
sudo apt install build-essential libevent-dev gcc make libc6-dev
Установленные пакеты служат для следующих целей:
- gcc: Известный компилятор языка Си для исходных файлов Memcached.
- make: Управляет компиляцией.
- libc6-dev: Предоставляет ссылки на библиотеку GNU C и заголовочные файлы.
- libevent-dev: Содержит файлы разработки для асинхронного уведомления о событиях.
Шаг 4: Настройка установки
С помощью параметра —prefix= задайте каталог, в который будут установлены бинарные файлы и библиотеки Memcached:
./configure --prefix=/usr/local
Шаг 5: Компиляция исходного кода Memcached на Debian
Скомпилируйте исходный код Memcached с помощью команды make:
make
Протестируйте Memcached, подтвердив текущую версию:
./memcached --version
Шаг 6. Установка Memcached на Debian с помощью команды ‘make install’
После завершения процесса компиляции установите Memcached, выполнив следующую команду:
sudo make install
Эта команда устанавливает Memcached на вашу систему, делая ее доступной из командной строки. Чтобы убедиться, что система распознала новые библиотеки, выполните следующее:
sudo ldconfig
Шаг 7: Проверка установки Memcached на Debian
Чтобы убедиться в том, что Memcached успешно установлен, выполните следующую команду:
memcached -V
Эта команда отобразит установленную версию Memcached, подтверждая успешную установку из исходного кода.
Шаг 8: Создание службы Systemd для Memcached на Debian
При установке Memcached из исходных текстов не происходит автоматического создания файла службы systemd. Чтобы запустить Memcached в качестве службы и управлять им с помощью systemctl, необходимо создать пользовательский файл службы systemd для Memcached. Выполните следующие шаги для создания и включения службы:
Создайте новый файл memcached.service в каталоге /etc/systemd/system с помощью текстового редактора. В данном примере мы будем использовать nano:
sudo nano /etc/systemd/system/memcached.service
Добавьте следующее содержимое в файл memcached.service:
[Unit]
Description=Memcached Service
After=network.target
[Service]
Type=simple
User=memcache
Group=memcache
ExecStart=/usr/local/bin/memcached /etc/memcached.conf
Restart=always
[Install]
WantedBy=multi-user.target
Сохраните файл и выйдите из текстового редактора.
Создайте пользователя и группу memcache для безопасного запуска службы:
sudo useradd -r -s /sbin/nologin -U -M memcache
Перезагрузите конфигурацию systemd для распознавания нового служебного файла:
sudo systemctl daemon-reload
Наконец, запустите сервис:
sudo systemctl enable memcached --now
Управление состоянием службы Memcached на Debian 12, 11 или 10
В этом разделе мы рассмотрим управление службой Memcached на вашей системе Debian. Сюда входит проверка статуса службы, запуск и остановка службы, а также настройка её запуска при загрузке системы.
Шаг 1: Проверка состояния службы Memcached
По умолчанию служба Memcached должна быть запущена после установки. Чтобы проверить его статус, используйте команду systemctl следующим образом:
systemctl status memcached
Эта команда отобразит текущее состояние службы Memcached.
Шаг 2: Запуск службы Memcached
Если служба Memcached не запущена, ее можно запустить с помощью следующей команды:
sudo systemctl start memcached
Шаг 3: Включение Memcached при загрузке системы
Для того чтобы служба Memcached автоматически запускалась при загрузке системы, выполните следующую команду:
sudo systemctl enable memcached
Шаг 4: Остановка службы Memcached
Если необходимо остановить службу Memcached, используйте эту команду:
sudo systemctl stop memcached
Шаг 5: Отключение Memcached при загрузке системы
Чтобы предотвратить автоматический запуск службы Memcached при загрузке системы, выполните следующую команду:
sudo systemctl disable memcached
Шаг 6: Перезапуск службы Memcached
Если необходимо перезапустить службу Memcached, например, после внесения изменений в конфигурацию, используйте данную команду:
sudo systemctl restart memcached
Шаг 7: Убедитесь, что Memcached прослушивает порт по умолчанию
И наконец, убедитесь, что Memcached активно прослушивает localhost, используя порт по умолчанию 11211. Для подтверждения этого выполните следующую команду:
ps -ef | grep memcached
В результате должна появиться строка, указывающая на то, что Memcached запущен и прослушивает указанный порт, как показано ниже:
memcache 5934 1 0 09:36 ? 00:00:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
root 6591 3653 0 09:55 pts/0 00:00:00 grep memcached
Настройка Memcached на Debian 12, 11 или 10
В этом разделе мы рассмотрим настройку параметров Memcached путём редактирования файла memcached.conf. Мы обсудим настройку IP-адреса прослушивания, отключение UDP и изменение распределения памяти по умолчанию.
Шаг 1: Откройте файл конфигурации Memcached
Откройте файл конфигурации Memcached, расположенный по адресу /etc/memcached.conf, с помощью текстового редактора, например nano:
sudo nano /etc/memcached.conf
Пользователям, скомпилировавшим Memcached из исходных текстов, потребуется создать этот файл, чтобы при первом открытии он был пустым по сравнению с методом APT; вы можете скопировать его для начала настройки:
# Example memcached.conf file
# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64
# Default port is 11211
-p 11211
# Run the daemon as a background process
-d
# Use syslog logging
-s
# Enable verbose logging
-vv
# Set the maximum number of simultaneous connections
-c 1024
Шаг 2: Настройка IP-адреса прослушивания
По умолчанию Memcached прослушивает IP-адрес 127.0.0.1. Проверьте параметр -l в конфигурационном файле и убедитесь, что он установлен на правильный IP-адрес. Если необходимо изменить IP-адрес, замените 127.0.0.1 новым IP-адресом:
-l 127.0.0.1
Шаг 3: Отключение UDP (необязательно)
Если поддержка UDP не требуется, рекомендуется отключить ее. Чтобы отключить UDP, добавьте в конфигурационный файл следующую строку:
-U 0
Шаг 4: Настройка распределения памяти
По умолчанию для Memcached выделяется 64 МБ памяти, что может оказаться недостаточным для крупных сайтов. Чтобы максимально эффективно использовать Memcached, следует изменить распределение памяти на более высокое значение.
Для настройки распределения памяти найдите в конфигурационном файле параметр -m и замените значение по умолчанию на требуемое количество (в МБ). Например, для выделения 2 ГБ памяти установите значение 2000:
-m 2000
Настройте этот параметр в соответствии с доступной памятью и требованиями вашего сервера.
Шаг 5: Сохранение и перезапуск Memcached
После внесения необходимых изменений сохраните конфигурационный файл, нажав CTRL+O, затем Y, а затем CTRL+X для выхода из текстового редактора. Наконец, перезапустите службу Memcached, чтобы изменения вступили в силу:
sudo systemctl restart memcached
Установка UFW Firewall для Memcached на Debian 12, 11 или 10
Для обеспечения безопасности вашего экземпляра Memcached очень важно правильно настроить правила брандмауэра. В этом разделе мы рассмотрим, как установить и настроить Uncomplicated Firewall (UFW) для обеспечения безопасности вашего сервера Memcached.
Шаг 1: Проверьте, установлен ли UFW в Debian
Сначала давайте проверим, установлен ли UFW на вашей системе Debian:
sudo ufw --version
Если UFW установлен, то в выводе вы увидите номер его версии. Если нет, то его необходимо установить.
Шаг 2. Установка UFW на Debian для работы с Memcached
Чтобы установить UFW на систему Debian, выполните следующую команду:
sudo apt install ufw
После завершения установки включите UFW с помощью следующей команды:
sudo ufw enable
Шаг 3: Настройка правил UFW для Memcached на Debian
Теперь, когда UFW установлен и включен, необходимо создать разрешающие правила для порта TCP 11211. Правила, которые вы создадите, будут зависеть от вашей установки и требований, будь то использование одного IP сетевого соединения или работа с несколькими экземплярами в кластерной сети.
Пример одиночного сетевого IP-подключения
Разрешить доступ к Memcached с определенного IP-адреса:
sudo ufw allow proto tcp from <ip_address> to any port 11211
Пример подключения к IP-сети кластера с несколькими экземплярами
Разрешить доступ к Memcached из подсети IP-адресов:
sudo ufw allow proto tcp from <ip_address>/24 to any port 11211
Обратите внимание, что второе правило UFW является правилом подсети. Прежде чем разрешить доступ, убедитесь, что внутренняя сеть безопасна и надежна.
Шаг 4: Проверка правил UFW
После настройки соответствующих правил проверьте правильность их конфигурации, перечислив текущие UFW-правила:
sudo ufw status
В результате должны появиться настроенные правила, обеспечивающие защиту экземпляра Memcached с помощью UFW.
Установка библиотек Memcached на Debian 12, 11 или 10
Memcached предлагает расширения для различных языков программирования, но чаще всего он используется в PHP. В этом разделе мы расскажем вам об установке библиотек Memcached для PHP, Python и Perl, а также о настройке Memcached для веб-серверов Apache и Nginx.
Установка библиотек PHP для Memcached на Debian
Чтобы установить библиотеку PHP для Memcached, выполните следующую команду:
sudo apt install php-memcached libapache2-mod-php php php-cli
Настройка Memcached для Apache HTTP Server в Debian
Если вы используете HTTP-сервер Apache, включите модуль Memcached, выполнив следующую команду:
sudo phpenmod memcached && sudo systemctl restart apache2
Настройка Memcached для HTTP-сервера Nginx на Debian
Поддержка Memcached будет включена по умолчанию в вашем блоке конфигурации PHP после установки библиотеки PHP для пользователей Nginx.
Ниже приведен пример простого блока сервера nginx:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
Установка библиотеки Python для Memcached в Debian
Чтобы установить поддержку Python для Memcached, выполните следующую команду:
sudo apt install python3-pymemcache
Установка библиотеки Perl для Memcached в Debian
Чтобы установить поддержку Perl для Memcached, выполните следующую команду:
sudo apt install libcache-memcached-libmemcached-perl
Заключение
В заключение следует отметить, что установка и настройка Memcached в Debian Linux может значительно повысить производительность ваших веб-приложений за счет быстрой, эффективной и простой в использовании системы кэширования. Следуя шагам, описанным в этом руководстве, вы сможете успешно установить Memcached, сконфигурировать его с выбранным вами веб-сервером и защитить его с помощью UFW. При правильной настройке и управлении Memcached может стать незаменимым помощником в оптимизации приложений и обеспечении лучшего качества работы пользователей.