Подробный гайд: настройка порта Redis и как работает Redis?

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

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

В этой статье вы найдёте полезную информацию о портах Redis. Мы также ответим на вопрос: как работает Redis? Независимо от того, опытный ли вы специалист или новичок, понимание всех тонкостей портов Redis даст вам знания, необходимые для оптимизации настройки сервера Redis, а значит, для повышения скорости и масштабируемости. Погрузитесь в детали, чтобы расширить свои знания Redis!

Как работает Redis?

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

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

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

Ниже приведена упрощённая схема взаимодействия клиента и сервера Redis. Она показывает, как приложение отправляет команды в Redis через TCP/RESP, как Redis обрабатывает данные в памяти и как он также может поддерживать сохранение данных и обмен сообщениями Pub/Sub.

Взаимодействие клиента и сервера Redis через порт по умолчанию 6379

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

В Redis данные хранятся в виде пар «ключ-значение». Ключи - это уникальные идентификаторы, а значения могут быть простыми типами данных (строки, целые числа) или сложными структурами данных. Redis предлагает разные варианты сохранения данных на диск, что обеспечивает их надёжность. Кроме того, он поддерживает транзакционные операции, применяет политики эффективного управления памятью по правилам LRU (Least Recently Used, вытеснение давно не использовавшихся данных) и имеет встроенные функции репликации. 

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

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

Какой номер порта Redis используется по умолчанию? 

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

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

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

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

Несмотря на эти меры предосторожности, порт по умолчанию 6379 остаётся самым распространённым для Redis, поскольку он по-прежнему играет важную роль в среде Redis.

Все порты Redis: пояснение

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

Порт

Назначение

Описание

6379

Основной порт Redis

Основной порт по умолчанию для доступа клиентов и обычных команд чтения и записи Redis.

16379

Шина кластера

Обслуживает внутреннюю связь между узлами Redis Cluster и обычно равен основному порту Redis плюс 10000.

26379

Redis Sentinel

Стандартный порт Redis Sentinel для мониторинга серверов и управления событиями переключения при отказе (failover).

6380

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

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

Собственный cluster-port

Собственный порт шины кластера

В Redis Cluster этот порт также можно задать вручную вместо стандартной схемы «основной порт плюс 10000».

 

Для простого развёртывания Redis обычно достаточно порта 6379. Однако более сложные конфигурации, такие как Redis Cluster или Redis Sentinel, также используют дополнительные порты для связи между узлами, мониторинга состояния и автоматического переключения при отказе.

Ниже приведён упрощённый обзор портов Redis. В большинстве конфигураций приложения подключаются к Redis через порт 6379, узлы кластера обмениваются данными друг с другом через порт 16379, а Redis Sentinel использует порт 26379 для мониторинга и операций обеспечения высокой доступности.

Обзор портов Redis 6379, 16379, 26379

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

Как проверить, на каком порту работает Redis

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

Быстрее всего это сделать с помощью Redis CLI:

redis-cli CONFIG GET port

В большинстве случаев Redis вернёт примерно такой результат:

1) "port"

2) "6379"

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

redis-cli -h your-host -p your-port CONFIG GET port

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

Ниже приведён пример файла конфигурации Redis (redis.conf), иллюстрирующий важные параметры, связанные с настройкой порта, сетевым доступом, сохранением данных, безопасностью и использованием памяти в типичном развёртывании Redis.

Настройка порта Redis в файле redis.conf

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

На уровне системы также можно проверить, какой порт слушает Redis, с помощью таких инструментов, как ss или lsof:

ss -ltnp | grep redis

lsof -i -P -n | grep redis-server

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

Настройка файрвола для порта Redis

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

Чтобы эффективно настроить файрвол для порта Redis, выполните следующие основные шаги:

 1. Сначала определите порт, на котором работает ваш экземпляр Redis. Redis по умолчанию использует порт 6379, но вы можете изменить его в соответствии со своими потребностями.

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

 3. Рассмотрите возможность запретить внешний доступ к порту Redis, особенно если ваш экземпляр Redis размещён на публичном сервере. Эта мера предосторожности повышает безопасность, блокируя трафик с внешних IP-адресов на порт Redis.

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

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

Как изменить порт Redis по умолчанию?

По умолчанию Redis использует порт 6379. Если вы хотите изменить порт Redis по умолчанию, выполните следующие шаги:

  • Сначала найдите файл конфигурации Redis. Обычно он называется «redis.conf». Типичные расположения файла конфигурации: «/etc/redis/redis.conf» в системах Linux или каталог установки Redis.
  • Откройте файл конфигурации сервера Redis в текстовом редакторе. Для редактирования файла могут понадобиться права администратора.
  • Теперь найдите параметр «port». Найдите строку, которая начинается с «port». Эта строка определяет номер порта, на котором Redis будет принимать подключения.
# Specify the port number

port 6379
  • Замените порт Redis 6379 на нужный номер порта.
# Specify the port number

port 12345

Замените 12345 на номер порта, который вы хотите использовать.

  • Сохраните изменения в файле конфигурации Redis и закройте текстовый редактор.
  • Перезапустите сервер Redis, чтобы применить новую настройку порта. Способ перезапуска Redis зависит от вашей операционной системы и того, как был установлен Redis. Типичные команды для перезапуска сервера Redis в системе Linux:
$ service redis-server restart 

или

$ systemctl restart redis-server

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

Лучшие практики конфигурации Redis

1. Используйте отдельный файл конфигурации

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

2. Ужесточите все параметры Redis, связанные с доступом

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

3. Заранее задайте лимиты памяти и правила вытеснения

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

4. Выберите правильную стратегию сохранения данных

Конфигурация Redis также должна соответствовать вашим требованиям к надёжности хранения. Redis поддерживает снимки RDB и сохранение AOF, а правильный выбор зависит от того, какую потерю данных может допустить ваше приложение и насколько быстрым должно быть восстановление. Надёжная конфигурация Redis не только быстрая, но и подготовлена к перезапускам и сбоям.

5. Вносите изменения осторожно и поддерживайте их понятными

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

Если вы планируете развёртывание Redis для продакшна, размещение Redis на Linux VPS от BlueVPS может значительно упростить настройку и масштабирование. Среда VPS даёт вам контроль, необходимый для управления параметрами безопасности, сети и производительности без ограничений общей среды.

Клиентские библиотеки Redis

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

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

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

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

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

Сценарии использования порта Redis 

Порт Redis по умолчанию 6379 служит точкой входа для подключений клиентов к серверу Redis и позволяет передавать команды экземпляру Redis. Благодаря этому разработчики могут работать с экземпляром Redis, выполняя ряд операций, таких как хранение и получение данных, обмен сообщениями pub/sub, кеширование и многое другое. Redis широко применяют в разных сценариях, в том числе:

Кеширование

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

Управление сессиями

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

Обмен сообщениями в реальном времени 

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

Быстрый приём данных

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

Дедупликация

Redis можно использовать для задач дедупликации, когда системе нужно выявлять и устранять дубликаты записей или событий. Благодаря структурам данных «множество» и «упорядоченное множество» в Redis дубликаты можно эффективно выявлять и обрабатывать.

Векторная база данных

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

Хранилища признаков

Redis используют как хранилище признаков (feature store) в приложениях машинного обучения и науки о данных. Он обеспечивает быстрый и надёжный способ хранить и получать признаки, используемые в моделях, облегчая прогнозирование и анализ в реальном времени за счёт того, что нужные признаки всегда доступны для вычислений.

Какие преимущества даёт использование Redis?

Redis, сервер баз данных и кеширования с открытым исходным кодом и развитой репликацией, даёт ряд преимуществ благодаря оптимальному использованию порта Redis, по умолчанию обычно 6379:

 1. Redis работает как система кеширования на основе отображения «ключ-значение» с производительностью, сопоставимой с Memcached. Это делает его надёжным решением для быстрого хранения и получения данных.

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

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

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

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

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

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

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

Типичные проблемы с портом Redis и их устранение

Проблемы с портом Redis обычно возникают по нескольким предсказуемым причинам: клиент обращается не по тому адресу, сервер принимает только локальные подключения, не учтены дополнительные порты, необходимые для Cluster или Sentinel, TLS включён на другой конечной точке, или запущенная служба использует не тот порт, который ожидается согласно конфигурации. Быстрее всего начать диагностику, проверив соединение вручную и определив активный порт Redis непосредственно на сервере.

redis-cli -h <host> -p <port> PING

redis-cli -h <host> -p <port> CONFIG GET port

1. Неправильный адрес подключения

Иногда приложение всё ещё пытается подключиться к 127.0.0.1:6379, тогда как Redis на самом деле работает в другом месте или на нестандартном порту. Во многих случаях проблема не в самом Redis, а в устаревшей строке подключения или переменной окружения.

2. Redis отвечает локально, но не извне

Если команды работают на сервере, но не выполняются с другой машины, возможно, Redis привязан только к localhost или доступ блокируют сетевые правила. Такое часто бывает, когда bind, правила файрвола или защищённый режим не настроены для удалённого трафика.

3. Отсутствующие порты в Redis Cluster

Узел Redis Cluster обычно использует два порта: один для клиентского трафика, а другой для внутренней связи кластера. Если открыт только основной порт, узел может казаться доступным, тогда как репликация, переключение при отказе или координация кластера не будут работать.

4. Путаница между Sentinel и службой данных

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

5. Значения во время работы не совпадают с файлом конфигурации

Порт, заданный в redis.conf, не всегда совпадает с тем, который использует активный процесс. При устранении неполадок всегда сначала проверяйте текущие настройки сервера и только потом сравнивайте их с сохранённым файлом конфигурации.

Заключение

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

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

Порт Redis: частые вопросы

Какой порт Redis используется по умолчанию?

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

Для чего используется порт 6379?

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

Как изменить порт Redis?

Изменить порт Redis можно, отредактировав директиву port в файле redis.conf и перезапустив Redis. Другой вариант - запустить Redis с собственным портом из командной строки, например запустить Redis на порту 6380 вместо стандартного 6379.

Порт Redis 6379 - это TCP или UDP?

Порт Redis 6379 использует TCP, а не UDP. Клиенты Redis подключаются через TCP-соединение, хотя Redis также может работать через Unix-сокеты, если эта возможность включена.

Какой порт использует Redis Sentinel?

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

Как проверить, работает ли Redis?

Самый простой способ проверить, работает ли Redis, - подключиться через redis-cli и отправить команду PING. Если Redis доступен, он должен вернуть PONG. Для удалённого экземпляра можно также напрямую проверить конкретный хост и порт.