Redis, что расшифровывается как Remote Dictionary Server, - это мощное хранилище структур данных в памяти с открытым исходным кодом, которое захватило мир хранения данных. Он славится своей универсальностью, поскольку поддерживает различные структуры данных, такие как строки, хэши, списки, множества и многое другое. В этом введении мы рассмотрим некоторые ключевые особенности и преимущества Redis.
Ключевые особенности и преимущества Redis
- Высокая производительность: Redis разработан для обеспечения исключительно высокой производительности, операции выполняются за считанные микросекунды. Такая быстрая обработка данных обусловлена тем, что он работает в режиме памяти, где данные хранятся непосредственно в оперативной памяти системы.
- Масштабируемость: Redis является горизонтально масштабируемой системой, что означает, что она может легко справиться с возросшей рабочей нагрузкой путем добавления новых узлов в свою архитектуру. Это позволяет Redis эффективно управлять большими объемами данных и поддерживать высокую производительность.
- Постоянство данных: Несмотря на то, что Redis является хранилищем данных в памяти, он предлагает настраиваемые опции сохранения данных. Это гарантирует, что данные не будут потеряны в случае сбоя или перезагрузки системы, что делает его надежным выбором для различных приложений.
- Широкий спектр структур данных: Как упоминалось ранее, Redis поддерживает различные структуры данных, включая строки, хэши, списки, множества, сортированные множества и многое другое. Это делает Redis невероятно гибким решением для широкого круга задач.
- Pub/Sub Messaging: Redis имеет встроенную систему обмена сообщениями publish/subscribe, которая позволяет эффективно взаимодействовать в режиме реального времени между различными клиентами и серверами.
- Высокая доступность: Redis поддерживает репликацию и автоматическое восстановление после отказа, что гарантирует работоспособность системы даже в условиях аппаратных сбоев или сетевых проблем.
- Простота использования: Благодаря понятным командам и интуитивно понятному синтаксису, Redis прост в освоении и использовании. Это делает его привлекательным вариантом для разработчиков, которым нужно мощное хранилище данных без сложного процесса обучения.
- Сильная поддержка сообщества: Redis может похвастаться живым и активным сообществом, которое предоставляет множество ресурсов, учебников и поддержки для пользователей всех уровней знаний.
Теперь, когда у нас есть лучшее понимание того, что может предложить Redis, давайте рассмотрим процесс установки. В руководстве будет показано, как установить Redis на Ubuntu 22.04 Jammy Jellyfish или Ubuntu 20.04 Focal Fossa, используя официальный APT-репозиторий Redis последней версии или используя версию репозитория Ubuntu по умолчанию. Этот же метод будет работать и для краткосрочных релизов, которые не достигли статуса "конец жизни".
Установка Redis в Ubuntu
Установка Redis с помощью репозитория Ubuntu
Шаг 1: Обновление Ubuntu
Перед установкой Redis необходимо убедиться, что пакеты вашей системы обновлены. Этот шаг поможет избежать любых конфликтов, которые могут возникнуть в процессе установки. Чтобы обновить систему Ubuntu, выполните следующую команду:
1 | sudo apt update && sudo apt upgrade |
Эта команда получит последнюю информацию о пакетах из репозиториев и обновит все устаревшие пакеты в вашей системе.
Шаг 2: Установите Redis
По умолчанию пакет Redis включен в репозиторий Ubuntu. Вы можете установить Redis с помощью менеджера пакетов apt, выполнив следующую команду:
1 | sudo apt install redis |
Эта команда загрузит и установит пакет Redis и его зависимости в вашей системе.
Шаг 3: Проверка установки
Теперь, когда вы установили Redis, очень важно проверить установку, проверив установленную версию. Этот шаг гарантирует, что Redis был установлен правильно и функционирует так, как ожидалось. Чтобы проверить установку Redis, выполните следующую команду:
1 | redis-cli --version |
Эта команда отобразит версию Redis, установленную в вашей системе. Если в выводе отображается версия Redis, это подтверждает, что установка прошла успешно.
Установка Redis с помощью репозитория Redis.io
Шаг 1: Обновление Ubuntu
Прежде чем приступить к установке Redis, обновите пакеты вашей системы для обеспечения совместимости и предотвращения конфликтов:
1 | sudo apt update && sudo apt upgrade |
Шаг 2: Установите необходимые пакеты
Чтобы завершить установку, необходимо установить некоторые необходимые пакеты программного обеспечения. Выполните следующую команду для их установки:
1 | sudo apt install software-properties-common apt-transport-https curl ca-certificates curl -y |
Эти пакеты необходимы для добавления репозитория Redis.io и безопасного получения информации о пакетах.
Шаг 3: Импортируйте APT-репозиторий Redis.io
Сначала импортируйте GPG-ключ для аутентификации пакетов:
1 | curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg |
Затем добавьте репозиторий Redis.io в вашу систему:
1 | 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 |
Шаг 4: Обновление списка пакетов
Обновите список источников, чтобы включить в него недавно добавленный репозиторий Redis.io:
1 | sudo apt update |
Шаг 5: Установите Redis
Теперь вы можете установить Redis из репозитория Redis.io. Если у вас уже установлен Redis, эта команда обновит его:
1 | sudo apt install redis-server redis-tools |
Шаг 6: Проверка установки Redis
Чтобы убедиться, что вы установили версию Redis.io, используйте команду apt-cache policy:
1 | apt-cache policy redis-server |
Далее включите и запустите службу Redis:
1 | sudo systemctl enable redis-server --now |
Проверьте состояние службы Redis и убедитесь, что она работает без ошибок:
1 | systemctl status redis-server |
Redis должен активно прослушивать localhost на порту по умолчанию 6379. Чтобы убедиться в этом, выполните следующую команду:
1 | ps -ef | grep redis |
Шаг 7: Проверить подключение к Redis
Чтобы проверить установку Redis, подключитесь к службе Redis с помощью команды redis-cli:
1 | redis-cli |
После подключения ваш терминал отобразит 127.0.0.1:6379. Выполните тест ping, чтобы убедиться в правильности связи со службой Redis:
1 | ping |
На выходе должно быть PONG, что указывает на успешное соединение. Чтобы выйти из экземпляра Redis, введите:
1 | exit |
Поздравляем! Вы успешно установили Redis в вашей системе и убедились, что он работает. Теперь вы можете приступить к настройке Redis.
Настройка Redis в Ubuntu
Redis - это универсальный инструмент, который может быть настроен различными способами для различных случаев использования. В этом разделе мы расскажем вам о настройке Redis для кэширования, доступа к сети и установки пароля для повышения безопасности.
Шаг 1: Редактирование файла конфигурации Redis
Чтобы начать настройку Redis, откройте файл /etc/redis/redis.conf с помощью редактора nano:
1 | sudo nano /etc/redis.conf |
Шаг 2: Настройка максимальной памяти
Одной из основных причин, по которой люди используют Redis, является кэширование. Чтобы выделить определенный объем памяти для кэширования Redis, добавьте следующие строки в конец конфигурационного файла:
1 2 | maxmemory 500mb maxmemory-policy allkeys-lru |
В этом примере мы выделили 500 МБ памяти для Redis. Вы можете изменить это значение в зависимости от аппаратного обеспечения вашего сервера и требований вашего приложения. Как только выделенная память будет исчерпана, Redis удалит ключи на основе алгоритма Least Recently Used (LRU).
Шаг 3: Настройте доступ к сети
По умолчанию Redis прослушивает только интерфейс localhost. Вы можете настроить его на прослушивание всех сетевых интерфейсов или определенных IP-адресов/подсетей.
Сначала найдите строку 69 в конфигурационном файле.
Вариант 1: Прослушивать все сетевые интерфейсы
Чтобы прослушивать все сетевые интерфейсы, закомментируйте строку bind, добавив символ # в начале:
1 | # bind 127.0.0.1 ::1 |
Вариант 2: Привязка к определенному IP-адресу или подсети
Чтобы привязать Redis к определенному IP-адресу или подсети, замените строку bind на нужный IP-адрес или подсеть:
1 | bind 0.0.0.0/0 |
или
1 | bind 192.150.1.0/24 |
Важно: При привязке Redis к IP-адресу или подсети настоятельно рекомендуется установить пароль для дополнительной безопасности.
Шаг 4: Настройка пароля
Для дополнительной защиты вашего экземпляра Redis установите пароль для аутентификации.
Найдите строку, начинающуюся с # requirepass (около строки 507), откомментируйте ее и задайте надежный пароль:
1 | requirepass YourStrongPasswordHere |
Замените YourStrongPasswordHere на надежный пароль, содержащий смесь заглавных и строчных букв, цифр и специальных символов.
После установки пароля вам нужно будет использовать команду auth с паролем при подключении к Redis с помощью redis-cli:
1 | redis-cli |
Пользователи, не прошедшие аутентификацию, получат сообщение об ошибке: (ошибка) NOAUTH Требуется аутентификация... При успешной аутентификации пользователи увидят сообщение OK.
Шаг 5: Сохранить изменения и перезапустить Redis
После внесения необходимых изменений в конфигурационный файл сохраните изменения, нажав Ctrl + O, а затем выйдите из редактора nano, нажав Ctrl + X. Наконец, перезапустите службу Redis, чтобы применить новые настройки:
1 | systemctl restart redis |
Настройка правил брандмауэра Redis UFW
При использовании Redis, особенно если вы настроили его на прослушивание определенных IP-адресов или подсетей, очень важно убедиться, что ваш брандмауэр разрешает входящие соединения через TCP-порт 6379. В этом разделе мы обсудим, как настроить правила UFW (Uncomplicated Firewall) для разрешения соединений Redis.
Шаг 1: Убедитесь, что UFW установлен и включен
Сначала убедитесь, что UFW установлен в вашей системе:
1 | sudo apt install ufw -y |
Затем включите UFW, если он еще не включен:
1 | sudo ufw enable |
Шаг 2: Создание правил UFW для Redis
В зависимости от ваших требований и настроек сети, вам может понадобиться создать правила для одного экземпляра сервера или нескольких экземпляров в кластере.
Вариант 1: Разрешить доступ с определенного IP-адреса
Если вам нужно разрешить доступ к Redis с одного сервера, создайте правило UFW для этого конкретного IP-адреса:
1 | sudo ufw allow proto tcp from [ip address] to any port 6379 |
Замените <ip_address> соответствующим IP-адресом.
Вариант 2: Разрешить доступ из подсети
Если у вас есть кластерная сеть с несколькими экземплярами, вы можете создать правило UFW для разрешения доступа из целой подсети:
1 | sudo ufw allow proto tcp from [ip address]/24 to any port 6379 |
Замените [subnet] на IP-адрес соответствующей подсети. Перед использованием этого правила убедитесь, что ваша внутренняя сеть безопасна и надежна.
Шаг 3: Проверка подключения Redis
После настройки правил UFW протестируйте службу Redis, чтобы убедиться, что она работает и доступна с разрешенных IP-адресов или подсетей. Используйте команду redis-cli с флагом -h, за которым следует IP-адрес, к которому вы хотите подключиться:
1 | redis-cli -h [ip-адрес] ping |
Замените [ip_address] соответствующим IP-адресом. Если конфигурация верна, вы должны получить ответ "pong".
1 | pong |
Дополнительные параметры конфигурации Redis
Redis - это универсальное и многофункциональное хранилище структур данных в памяти, используемое в основном для кэширования, посредничества в передаче сообщений и многого другого. В этом разделе мы рассмотрим дополнительные параметры конфигурации Redis, которые помогут вам настроить его производительность и поведение в соответствии с вашими конкретными потребностями путем изменения конфигурационного файла Redis.
Настройка политики истечения срока действия ключа-значения
В конфигурационном файле Redis вы можете установить время жизни ключей по умолчанию (TTL), изменив параметры maxmemory-policy и maxmemory-samples. Откройте файл /etc/redis/redis.conf с помощью редактора nano:
1 | sudo nano /etc/redis/redis.conf |
Найдите параметр maxmemory-policy и настройте его по своему усмотрению. Например, чтобы установить политику истечения срока действия ключей по алгоритму наименьшего последнего использования (LRU), обновите конфигурацию следующим образом:
1 | maxmemory-policy volatile-lru |
Теперь найдите параметр maxmemory-samples и настройте количество выборок, которые Redis должен проверить для принятия решения о выселении:
1 | maxmemory-samples 5 |
Настройте TCP Keepalive
TCP keepalive может помочь обнаружить и закрыть простаивающие соединения, освобождая ресурсы. Чтобы включить TCP keepalive, найдите параметр tcp-keepalive в файле /etc/redis/redis.conf:
1 | tcp-keepalive 300 |
В этом примере мы установили интервал keepalive равным 300 секундам. Настройте это значение в соответствии с вашими требованиями.
Настройка мониторинга медленных запросы
Медленные запросы могут помочь выявить проблемы с производительностью, регистрируя запросы, которые выполняются дольше определенного времени. Чтобы настроить медленные журналы, найдите параметры slowlog-log-slower-than и slowlog-max-len в файле /etc/redis/redis.conf:
1 2 | slowlog-log-slower-than 10000 slowlog-max-len 128 |
В этом примере мы установили порог slowlog на 10 000 микросекунд (10 миллисекунд) и ограничили медленный журнал 128 последними записями. Настройте эти значения в соответствии с вашими потребностями.
Настройка уведомлений о событиях Redis
Redis может генерировать уведомления об определенных событиях, что может быть полезно для мониторинга и отладки. Чтобы включить уведомления о событиях, найдите параметр notify-keyspace-events в файле /etc/redis/redis.conf:
1 | notify-keyspace-events ExA |
В этом примере мы настроим Redis на отправку уведомлений об истекших и вытесненных ключах. Для получения дополнительной информации об уведомлениях о событиях и доступных опциях обратитесь к официальной документации Redis.
Настройка уровня протоколирования Redis
Настройка уровня протоколирования Redis может помочь вам собрать необходимое количество информации для устранения неполадок и мониторинга. Чтобы настроить уровень протоколирования, найдите параметр loglevel в файле /etc/redis/redis.conf:
1 | loglevel notice |
В этом примере мы установили уровень регистрации на notice, что является уровнем по умолчанию. Вы можете выбрать один из следующих вариантов: debug, verbose, notice и warning. Настройте уровень протоколирования в соответствии с вашими требованиями.
После настройки нужных параметров сохраните изменения и перезапустите Redis:
1 | sudo systemctl restart redis-server |
Заключение
В этом руководстве мы рассмотрели установку и настройку Redis в Ubuntu Linux. Мы показали, как настроить Redis для кэширования, настроить сетевой доступ и функции безопасности, настроить правила брандмауэра UFW, а также изучили дополнительные параметры конфигурации для оптимизации производительности Redis. Следуя этим шагам, вы сможете развернуть полностью функциональный и безопасный экземпляр Redis, отвечающий вашим конкретным потребностям.