Как установить Redis в Debian

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

Содержание

Уникальные возможности Redis

  • Хранилище данных в памяти: Redis хранит данные в памяти, что обеспечивает более высокую скорость доступа к ним по сравнению с базами данных на дисках. Эта особенность делает его отличным выбором для кэширования, где скорость имеет первостепенное значение.
  • Сервер структуры данных: В отличие от традиционных реляционных баз данных, которые работают в основном с таблицами, Redis поддерживает множество структур данных. Он может работать со строками, хэшами, списками, наборами, отсортированными наборами, растровыми изображениями, гиперлогическими и геопространственными индексами.
  • Возможности Pub/Sub: Redis поддерживает паттерн Publish/Subscribe, представляющий собой систему обмена сообщениями между отправителем (pub) и получателем (sub). Эта возможность позволяет создавать приложения для обмена сообщениями в реальном времени.
  • Постоянство: Несмотря на то что Redis является базой данных in-memory, он также предлагает функции персистентности. Вы можете настроить Redis на периодическое сохранение данных на диске или добавление каждой команды в журнал.
  • Высокая доступность и масштабируемость: Redis предлагает репликацию, разделение и режим высокой доступности под названием Redis Sentinel. Кроме того, Redis Cluster обеспечивает автоматическое разбиение на несколько узлов Redis.

Области применения Redis

Redis - это не просто просто хранилище ключевых значений; это универсальный инструмент, который подходит для различных случаев использования. Среди многочисленных способов использования Redis можно назвать следующие:

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

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

В следующем руководстве мы покажем, как установить Redis на Debian 12 Bullseye, Debian 11 Bullseye и Debian 10 Buster, используя либо версию по умолчанию, содержащуюся в репозитории Debian, которая, в зависимости от версии Debian Linux, может быть довольно старой, либо импортируя официальный репозиторий redis.io apt для установки последней версии для вашего дистрибутива с помощью команд CLI.

Шаги предустановки

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

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

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

Давайте разберем эту команду на части:

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

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

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

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

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

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

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

Установка Redis в Debian Linux

Установка Redis из репозитория APT Debian

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

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

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

Установка Redis с помощью APT-репозитория Redis.io

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

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

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

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

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

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

Шаг 3: Установка Redis с сайта Redis.io

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

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

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

Пример вывода:

пример apt-cache для подтверждения установки redis.io redis на debian linux

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

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

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

Пример вывода:

пример вывода команды redis systemctl status ok на debian linux

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

Порты

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

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

Пример вывода:

пример использования ps -ef с командой grep для подтверждения прослушивания порта Redis на debian linux
Ping-тестирование службы Redis

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

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

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

Пример вывода:

ping pong пример Redis на debian linux

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

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

Как настроить и установить Redis на Debian

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

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

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

Шаг 2: Назначение максимального объема памяти для кэширования

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

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

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

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

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

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

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

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

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

или

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Шаг 3: Настройка правил UFW для Redis

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Более глубокое изучение возможностей конфигурации Redis

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий