Как установить Redis на Debian 12, 11 или 10

Redis — это хранилище структур данных in-memory с открытым исходным кодом, широко используемое в качестве базы данных, кэша и брокера сообщений. Высокая производительность и гибкость делают его популярным в различных технологических отраслях. Если вы хотите установить Redis на Debian 12 Bookworm, Debian 11 Bullseye или Debian 10 Buster, то это руководство для вас.

Ключевые особенности Redis

  • Быстрый доступ к данным: Redis хранит данные в памяти, что обеспечивает их быстрое получение. Это делает его идеальным для приложений кэширования.
  • Множественные структуры данных: В отличие от традиционных табличных баз данных, Redis поддерживает различные структуры данных, такие как строки, хэши, списки и множества.
  • Обмен сообщениями в реальном времени: Redis предлагает шаблоны обмена сообщениями Publish/Subscribe, что обеспечивает взаимодействие приложений в реальном времени.
  • Постоянство данных: Несмотря на то что Redis является базой данных in-memory, он позволяет периодически сохранять данные на диске, обеспечивая баланс между скоростью и долговечностью.
  • Масштабируемость и доступность: Такие функции, как репликация, разделение и Redis Sentinel, обеспечивают высокую доступность и масштабируемость на нескольких узлах.

Общие случаи использования Redis

  • Кэширование: Redis обычно используется для кэширования часто используемых данных, что ускоряет их поиск.
  • Хранение сессий: Redis хорошо подходит для хранения данных пользовательских сессий, особенно в веб-приложениях с высокой посещаемостью.
  • Очередь сообщений: Возможности pub/sub делают Redis отличным выбором для систем очередей сообщений.

Понимание возможностей Redis может существенно расширить ваш технологический стек. В предстоящем руководстве будет подробно описано, как установить Redis на Debian 12 Bookworm, Debian 11 Bullseye или Debian 10 Buster. Мы рассмотрим два метода установки: один из них использует стандартный репозиторий Debian, а другой — официальный репозиторий Redis последней версии. В обоих случаях будут использоваться команды интерфейса командной строки (CLI). Следите за пошаговыми инструкциями.

Раздел 1: Шаги предустановки при установке Redis на Debian

Шаг 1: Обновление системных пакетов Debian

Первым шагом перед установкой Redis или любого другого программного обеспечения является проверка актуальности пакетов вашей системы. Этот важный предварительный шаг помогает снизить вероятность возникновения конфликтов в процессе последующей установки. Он обеспечивает актуальность всех системных зависимостей, сводя к минимуму возможные проблемы, возникающие из-за устаревших пакетов.

В системе Debian это можно сделать, выполнив в терминале следующую команду:

sudo apt update && sudo apt upgrade

Давайте разберем эти команды по отдельности:

  • sudo: Это префикс, позволяющий выполнять команды с привилегиями суперпользователя или root. По сути, это способ сказать: «Выполнить следующую команду от имени администратора».
  • apt update: Эта команда обновляет список доступных пакетов и их версии, но не устанавливает и не обновляет какие-либо пакеты.
  • &&: Это логический оператор в оболочке Bash, который позволяет выполнять несколько команд в одной строке. Вторая команда будет выполнена только в случае успешного выполнения первой.
  • apt upgrade: Эта команда устанавливает более новые версии имеющихся пакетов. После обновления списка доступных пакетов с помощью apt update их можно обновить с помощью apt upgrade.

Шаг 2: Установка необходимых пакетов для установки Redis на Debian

После обновления системных пакетов Debian вам потребуется установить определённые пакеты программного обеспечения, необходимые для установки Redis.

Вы можете установить эти пакеты, выполнив следующую команду:

sudo apt install software-properties-common apt-transport-https curl ca-certificates -y

Давайте разберем эту команду, чтобы лучше ее понять:

  • sudo apt install: Эта команда используется для установки пакетов в систему Debian.
  • software-properties-common: Этот пакет предоставляет специальные сценарии для безопасного управления программным обеспечением и исходным кодом.
  • apt-transport-https: Этот пакет необходим менеджеру пакетов apt для получения пакетов по протоколу ‘https’.
  • curl: Это инструмент командной строки для передачи данных по различным сетевым протоколам. Помимо прочего, он помогает загружать файлы.
  • ca-certificates: Этот пакет необходим для проверки безопасности веб-сайтов. Он предоставляет набор сертификатов удостоверяющих центров (CA).
  • -y: Эта опция автоматически отвечает «да» на все запросы во время установки.

Напомним, что эта команда использует привилегии root (sudo) для установки (apt install) необходимых пакетов программного обеспечения, обеспечивая плавную и безопасную передачу данных (curl и apt-transport-https) и безопасную проверку сайтов (ca-certificates), а также безопасное управление программным обеспечением и исходным кодом (software-properties-common).

Раздел 2: Установка Redis на Debian 12, 11 или 10

Вариант 1: Установка Redis с помощью APT Debian Repository на Debian

Хотя Debian включает Redis в свой стандартный набор программ, версия, которую вы найдёте, может быть не самой последней. Debian предпочитает стабильность и обычно предоставляет только обновления безопасности или основные обновления. Это может сделать версию Redis на Debian более старой, но, возможно, более стабильной. Это может быть идеальным вариантом, если предполагаемое использование Redis не требует самых последних возможностей.

Чтобы установить Redis этим способом, вам нужно выполнить следующую команду в терминале:

sudo apt install redis

Команда sudo предоставляет привилегии суперпользователя, а apt install redis устанавливает пакет ПО Redis на систему Debian.

Вариант 2: Установка Redis с помощью APT-репозитория Redis.io на Debian 12, 11 или 10

Второй способ может оказаться более привлекательным для тех, кому требуется или нужна наиболее актуальная версия Redis. Он предполагает импорт репозитория APT из официального репозитория Redis.io. В этот репозиторий регулярно поступают исправления ошибок, исправления безопасности и обновления функций.

Шаг 1: Импорт репозитория Redis.io в Debian

Прежде всего, нам необходимо импортировать ключ GPG. GPG, или GNU Privacy Guard, — это инструмент для безопасной передачи и хранения данных. Ключ GPG является частью аутентификации пакета и гарантирует, что данные, которые вы собираетесь загрузить, получены из ожидаемого источника и не были подделаны во время транспортировки. Для импорта ключа GPG выполните следующую команду:

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

Далее мы импортируем репозиторий с помощью следующей команды:

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

Шаг 2: Обновление индекса пакетов

После добавления нового репозитория необходимо обновить индекс пакетов системы, чтобы узнать, какие пакеты доступны из нового источника. Для этого выполните следующую команду:

sudo apt-get update

Шаг 3: Установка Redis из Redis.io на Debian 12, 11 или 10

Когда всё готово, вы можете установить Redis из репозитория Redis.io. Если у вас уже установлен Redis из репозитория Debian, то вместо этого вы можете увидеть обновление. Следующая команда устанавливает Redis, а также сервер Redis и инструменты:

sudo apt install redis redis-server redis-tools

Шаг 4: Проверка установки Redis

После установки всегда полезно проверить установку. Это можно сделать с помощью команды apt-cache policy, подтверждающей установку версии Redis.io. Вот как ее использовать:

apt-cache policy redis

Далее убедитесь, что экземпляр Redis активирован и настроен на запуск при загрузке системы, выполнив следующую команду:

sudo systemctl enable redis-server --now

Чтобы убедиться, что Redis работает без ошибок, выполните эту команду:

systemctl status redis-server

Эта команда предоставляет информацию о службе redis-server, которая теперь должна быть запущена.

Проверка Redis: Проверка после установки на Debian

Порты прослушивания

По умолчанию Redis прослушивает localhost, используя порт 6379. Чтобы убедиться, что Redis действительно активно прослушивает порт, как и ожидалось, выполните следующую команду:

ps -ef | grep redis

Эта команда отображает запущенные процессы, связанные с Redis, которые должны отражать состояние прослушивания Redis на порту 6379.

Ping-тестирование службы Redis

Тест ping — это один из самых простых способов проверки работоспособности службы Redis. При этом устанавливается соединение со службой Redis, проверяется, что она работает и готова отвечать на команды.

Сначала подключитесь к службе Redis с помощью следующей команды:

redis-cli

После выполнения этой команды в терминале должно появиться сообщение 127.0.0.1:6379, указывающее на то, что вы подключены к Redis на localhost. Теперь вы можете выполнить команду ping для службы Redis следующим образом:

ping

Выход из экземпляра Redis

После того как проверка завершена и вы убедились, что Redis работает как надо, вы можете выйти из экземпляра Redis, набрав команду:

exit

Мы успешно установили Redis на систему Debian, используя либо APT-репозиторий Debian, либо официальный APT-репозиторий Redis.io.

Раздел 3: Как настроить и установить Redis на Debian 12, 11 или 10

Redis известен своей адаптивностью и способностью подстраиваться под самые разные сценарии. В этом разделе мы рассмотрим настройку Redis для кэширования, доступа к сети и применения пароля для усиления безопасности.

Шаг 1: Доступ к файлу конфигурации Redis

Работа по настройке Redis начинается с файла конфигурации Redis, расположенного по адресу /etc/redis/redis.conf. Вам необходимо открыть этот файл с помощью текстового редактора, например nano. Для этого выполните следующую команду:

sudo nano /etc/redis.conf

Шаг 2: Выделение максимальной памяти для кэширования

Популярным вариантом использования Redis является кэширование данных для повышения производительности приложений. Чтобы выделить определенный объем памяти для этой цели в Redis, добавьте следующие строки после файла конфигурации:

maxmemory 500mb 
maxmemory-policy allkeys-lru

В данном сценарии мы выделили 500 МБ памяти для Redis. Этот объем может быть изменен в зависимости от технических характеристик вашего сервера и требований вашего приложения. Когда выделенная память достигнет своего объема, Redis будет удалять ключи, следуя политике наименьшего использования (LRU).

Шаг 3: Настройка сетевого доступа

По умолчанию Redis настроен на прослушивание только интерфейса localhost. Вы можете настроить этот параметр таким образом, чтобы Redis прослушивал все сетевые интерфейсы или определенные IP-адреса/подсети.

Для начала необходимо найти строку 69 в конфигурационном файле.

Вариант 1: прослушивание всех сетевых интерфейсов

Чтобы заставить Redis прослушивать все сетевые интерфейсы, можно закомментировать строку bind, добавив в ее начало символ #:

# bind 127.0.0.1 ::1

Вариант 2: Привязка к конкретному IP-адресу или подсети

Чтобы привязать Redis к конкретному IP-адресу или подсети, замените строку bind на желаемый IP-адрес или подсеть:

bind 0.0.0.0/0

или

bind 192.150.5.0/24

Важно: При привязке Redis к IP-адресу или подсети настоятельно рекомендуется вводить пароль для повышения уровня безопасности.

Шаг 4: Принудительная проверка подлинности пароля

Чтобы добавить дополнительный уровень защиты экземпляру Redis, можно задать пароль для аутентификации.

Найдите строку, начинающуюся с # requirepass (около строки 507), откомментируйте ее и задайте надежный пароль:

requirepass YourStrongPasswordHere

Замените YourStrongPasswordHere на надежный пароль, состоящий из прописных и строчных букв, цифр и специальных символов.

После установки пароля при подключении к Redis с помощью redis-cli необходимо будет использовать команду auth вместе с паролем:

redis-cli 
auth YourStrongPasswordHere

Пользователи, не прошедшие аутентификацию, получат сообщение об ошибке: (ошибка) NOAUTH Требуется аутентификация. При успешной аутентификации пользователи получат сообщение OK.

Шаг 5: фиксация изменений и перезапуск Redis

После внесения необходимых изменений в конфигурационный файл сохраните их, нажав Ctrl + O, и выйдите из редактора nano, нажав Ctrl + X.

Наконец, перезапустите службу Redis, чтобы новые настройки вступили в силу:

sudo systemctl restart redis

Эта команда требует от системы остановить службу Redis и тут же запустить ее снова, тем самым обеспечив работу Redis в соответствии с новыми заданными параметрами конфигурации.

Чтобы убедиться в том, что служба Redis была успешно перезапущена и работает корректно, можно проверить ее состояние, выполнив следующую команду:

sudo systemctl status redis

Эта команда вернет информацию о службе Redis, включая ее статус (активна или неактивна), время работы, а также сообщения журнала, которые вы могли видеть ранее при подтверждении установки.

Раздел 4: Как настроить брандмауэр для Redis с помощью UFW

Важным компонентом безопасной работы сервера Redis является настройка защитного брандмауэра. По умолчанию Redis не имеет встроенного брандмауэра. Также и Debian, операционная система, которую вы используете, не предоставляет простого в использовании решения для брандмауэра, если только вы не знакомы с тонкостями iptables. Тем не менее, существует простое и надежное решение, которое может быть использовано даже теми, кто имеет начальный или средний уровень знаний, для защиты своей установки Redis при взаимодействии с публичными сервисами. В этом решении используется Uncomplicated Firewall (UFW), интуитивно понятная и удобная утилита межсетевого экрана.

Шаг 1: Убедитесь, что UFW установлен на Debian

Перед настройкой брандмауэра необходимо проверить, установлен ли UFW на вашем сервере Debian. Если он ещё не установлен, вы можете легко установить его с помощью следующей команды:

sudo apt install ufw -y

В этой команде sudo используется для выполнения команды с правами root, apt install — команда для установки пакета, ufw — устанавливаемый пакет, а -y — опция, автоматически отвечающая «да» на любые запросы, что позволяет продолжить установку без участия пользователя.

Шаг 2: Включение UFW

После установки UFW необходимо включить его, чтобы он начал работать и защищать вашу систему. Включить UFW можно с помощью следующей команды:

sudo ufw enable

Эта команда указывает UFW на активацию и применение всех правил, которые вы установили или будете устанавливать.

Шаг 3: Настройка правил UFW для Redis на Debian 12, 11 или 10

Теперь, когда UFW активирован, вы можете настроить его для защиты вашего сервера Redis. В зависимости от конкретной ситуации и от того, является ли ваша установка Redis отдельным сервером или частью кластера, вам может потребоваться настройка различных правил брандмауэра.

Для дополнительного экземпляра сетевого IP-сервера

Если у вас есть отдельный сервер Redis, который вы хотите защитить с помощью UFW, используйте эту команду:

sudo ufw allow proto tcp from <ip address> to any port 6379

Здесь вместо <ip address> указывается IP-адрес сервера, с которого необходимо разрешить соединения. Эта команда указывает UFW на разрешение TCP-соединений с этого IP-адреса с любой системой на порт 6379, порт по умолчанию для Redis.

Для кластерной сети с несколькими экземплярами

Если вы работаете с кластером серверов Redis, вы можете разрешить соединения из всей подсети. Для этого выполните следующую команду:

sudo ufw allow proto tcp from <ip address>/24 to any port 6379

В этой команде замените <ip address> на IP-адрес подсети, из которой вы хотите разрешить подключения. Обратите внимание, что данная команда подразумевает значительное доверие ко всем устройствам в этой подсети, поскольку открывает сервер Redis для всех них. Поэтому используйте эту команду только в том случае, если вы уверены в безопасности своей внутренней сети.

Шаг 4: Проверка конфигурации UFW

После настройки правил UFW важно убедиться, что они работают так, как нужно. Подобно тому, как в начале этого руководства вы пинговали свой сервер Redis, чтобы убедиться в его работоспособности, вы также можете проверить свои новые правила брандмауэра. Это можно сделать с помощью команды redis-cli:

redis-cli -h <ip address> ping

Снова замените <ip address> на IP-адрес вашего сервера Redis. Если правила брандмауэра настроены правильно и сервер Redis работает как положено, то результатом выполнения этой команды должно быть простое pong.

В этой команде redis-cli — это интерфейс командной строки для Redis, -h — это хост (IP-адрес вашего сервера), а ping — это команда для проверки соединения с сервером Redis.

Шаг 5: Интерпретация результатов

Вывод команды redis-cli поможет вам убедиться в том, что правила брандмауэра работают так, как ожидалось.

pong

Этот вывод является хорошим знаком. Ответ pong указывает на то, что сервер Redis доступен и готов принимать команды. Это подтверждает, что правила брандмауэра, настроенные в UFW, работают корректно, позволяя серверу взаимодействовать по назначению.

Раздел 5: Примеры опций расширенной конфигурации Redis на Debian

Redis, хранилище структур данных в памяти, славится своей адаптивностью и широким спектром возможностей. Оно служит для множества целей, таких как кэширование и брокерство сообщений. Всего лишь несколько изменений в конфигурационном файле позволяют изменить производительность и поведение Redis в соответствии с вашими уникальными потребностями. В этой части нашего руководства мы рассмотрим дополнительные возможности настройки Redis.

Шаг 1: Установка политики истечения срока действия ключа-значения

В конфигурационном файле Redis можно установить стандартное время жизни (TTL) для ключей. Управление этим параметром осуществляется с помощью настроек maxmemory-policy и maxmemory-samples. Для начала откроем конфигурационный файл с помощью редактора nano, выполнив следующую команду:

sudo nano /etc/redis/redis.conf

Найдите параметр maxmemory-policy и настройте его по своему усмотрению. Например, если вы хотите установить политику, при которой ключи уничтожаются по алгоритму наименьшего использования (LRU), обновите конфигурацию таким образом:

maxmemory-policy volatile-lru

Затем найдите параметр maxmemory-samples. Она определяет количество выборок, которые Redis должен просмотреть для принятия решения о выселении:

maxmemory-samples 5

Шаг 2: Включение функции TCP Keepalive

Активация TCP keepalive позволяет обнаруживать и закрывать неработающие соединения, что, в свою очередь, высвобождает ценные системные ресурсы. Найдите параметр tcp-keepalive в файле /etc/redis/redis.conf, чтобы включить его:

tcp-keepalive 300

В данном примере мы установили интервал keepalive равным 300 секундам. Вы должны скорректировать это значение в соответствии с требованиями и условиями работы вашего сервера.

Шаг 3: Настройка мониторинга медленных журналов

Медленные журналы представляют собой ценный механизм для выявления проблем с производительностью. Они регистрируют запросы, которые превышают заданную продолжительность. Для настройки медленных журналов найдите в файле /etc/redis/redis.conf параметры slowlog-log-slower-than и slowlog-max-len:

slowlog-log-slower-than 10000 
slowlog-max-len 128

В приведенном примере порог медленного журнала установлен на 10 000 микросекунд (что эквивалентно 10 миллисекундам). В медленном журнале будут сохраняться 128 последних записей. Эти значения следует корректировать в соответствии с конкретными требованиями и условиями.

Шаг 4: Включение уведомлений о событиях Redis

Redis может создавать уведомления для определенных событий, что является мощным инструментом для мониторинга и отладки. Чтобы активировать уведомления о событиях, найдите параметр notify-keyspace-events в файле /etc/redis/redis.conf:

notify-keyspace-events ExA

Здесь мы настраиваем Redis на отправку уведомлений об истекших и вытесненных ключах. Если вы хотите получить более подробную информацию об уведомлениях о событиях и доступных вариантах, обратитесь к официальной документации Redis.

Шаг 5: Настройка уровня протоколирования Redis

Изменение уровня протоколирования Redis может способствовать более эффективному устранению неполадок и мониторингу, предоставляя необходимую информацию. Параметр loglevel в файле /etc/redis/redis.conf определяет уровень протоколирования:

loglevel notice

В данном сценарии мы установили уровень протоколирования ‘notice’, т.е. значение по умолчанию. Доступны следующие опции: ‘debug’, ‘verbose’, ‘notice’ и ‘warning’. Вы должны настроить уровень протоколирования так, чтобы он наилучшим образом соответствовал вашим потребностям.

После завершения настройки параметров конфигурации сохраните изменения. Следующий и последний шаг — перезапуск Redis, чтобы изменения вступили в силу. Это можно сделать с помощью следующей команды:

sudo systemctl restart redis-server

После выполнения этой команды Redis перезапустится, и изменения, внесенные в конфигурацию, будут применены.

Заключительные размышления

В этом руководстве мы рассмотрели установку и настройку Redis на серверах Debian 12, 11 или 10, предоставив подробный обзор различных шагов. Начиная с начальной установки и заканчивая настройкой брандмауэра для обеспечения дополнительной безопасности, мы подробно рассмотрели настройку Redis для удовлетворения конкретных потребностей. Кроме того, мы рассмотрели дополнительные варианты конфигурации, обеспечивающие более глубокое понимание того, как можно оптимизировать Redis в соответствии с вашими конкретными требованиями. Важно помнить, что Redis как многофункциональное хранилище структур данных предлагает множество вариантов конфигурации, что позволяет точно настроить его производительность и поведение в соответствии с вашими потребностями.

Поделитесь с друзьями

Добавить комментарий

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x