Как проверить версию Redis сервера

Как проверить версию Redis сервера

Проверить версию Redis сервера можно несколькими способами: через команду `INFO server` в интерактивной консоли Redis CLI, с помощью команды `redis-cli —version` для локального клиента или выполнив `redis-cli info server | grep redis_version` в одной строке. Самый надёжный и универсальный метод — использование команды `INFO`, так как она возвращает актуальные данные непосредственно от запущенного экземпляра сервера.

Чтобы быстро узнать версию Redis, выполните redis-cli INFO server и найдите строку с redis_version. Для проверки доступности сервера перед этим используйте PING. Этот способ работает на всех системах, где установлен клиент Redis.

Redis — один из самых популярных in-memory хранилищ данных с поддержкой различных структур: строк, хэшей, списков, множеств и других. Он активно используется для кэширования, очередей, сессий и реализации реального времени в приложениях. При администрировании, обновлении или диагностике проблем знание точной версии Redis критически важно. Версия влияет на доступные функции, производительность, наличие уязвимостей и совместимость с клиентскими библиотеками.
Например, начиная с версии 6.0, Redis получил поддержку TLS, ACL (управление доступом), а в версии 7.0 была переработана архитектура модулей и введён новый протокол RESP3 по умолчанию. Устаревшие версии, такие как 4.0 или ниже, могут содержать известные уязвимости и не поддерживаться разработчиками. Поэтому определение текущей версии — первый шаг при аудите безопасности или миграции инфраструктуры.

Проверка версии через команду INFO в Redis CLI

Самый достоверный способ определить версию Redis — использовать команду `INFO`. Она возвращает подробную информацию о состоянии сервера, включая версию, количество подключений, использование памяти, статистику операций и многое другое. Раздел `server` содержит именно ту информацию, которая нужна для идентификации версии.
Для этого подключитесь к серверу через `redis-cli`:
«`bash
redis-cli
«`
После входа в интерактивный режим выполните:
«`bash
INFO server
«`
В выводе вы увидите строку вида:
«`
redis_version:7.0.15
«`
Если нужно получить только версию без лишнего текста, используйте комбинацию команд:
«`bash
redis-cli INFO server | grep redis_version
«`
Это особенно полезно в скриптах и автоматизации.

Полезно знать: Команда INFO безопасна для выполнения в продакшене — она не блокирует сервер и не изменяет состояние данных.

Пошаговая инструкция

  1. Откройте терминал на машине, где установлен redis-cli.
  2. Запустите клиент: redis-cli.
  3. Введите команду: INFO server.
  4. Найдите строку redis_version в выводе.
  5. Скопируйте значение — это и есть версия вашего сервера.

Если Redis требует пароль, сначала выполните аутентификацию:
«`bash
AUTH ваш_пароль
«`
или сразу в одной строке:
«`bash
redis-cli -a ваш_пароль INFO server | grep redis_version
«`
Обратите внимание: использование `-a` может быть небезопасным, так как пароль виден в истории команд. Лучше использовать файл конфигурации или переменные окружения.

Использование флага —version (ограничения и нюансы)

Команда `redis-cli —version` показывает версию самого клиентского приложения, а не сервера. Это важное различие, которое часто приводит к путанице. Например, на вашей машине может быть установлен `redis-cli` версии 6.2, но сам сервер работать под управлением Redis 5.0.
Выполните:
«`bash
redis-cli —version
«`
Вывод будет примерно таким:
«`
redis-cli 6.2.6
«`
Это не версия сервера. Такой способ подходит только если клиент и сервер размещены на одной машине и управляются в единой среде (например, в тестовом контуре). В production-системах это редкость.

«Никогда не полагайтесь на --version как на источник данных о сервере. Это частая ошибка новичков, ведущая к некорректному планированию обновлений.» — Алексей К., DevOps-инженер, 12 лет опыта

Когда можно использовать —version?

  • На локальной машине для быстрой проверки установленного пакета.
  • В CI/CD-пайплайнах, если Redis запускается как контейнер или сервис в рамках сборки.
  • При установке из пакетного менеджера (apt, yum, brew), чтобы убедиться в корректности установки.

Но даже в этих случаях рекомендуется дублировать проверку через `INFO`, особенно если есть сомнения в совпадении версий.

Как проверить версию удалённого Redis-сервера

Часто Redis развёрнут на отдельном сервере, в облаке или как managed-сервис (например, AWS ElastiCache, Google Memorystore, Azure Cache for Redis). В таких случаях необходимо подключиться к серверу по сети.
Для этого используйте параметры подключения в `redis-cli`:
«`bash
redis-cli -h HOST -p PORT -a PASSWORD INFO server | grep redis_version
«`
Где:

  • -h — IP-адрес или доменное имя сервера;
  • -p — порт (по умолчанию 6379);
  • -a — пароль (если задан).

Пример:
«`bash
redis-cli -h 192.168.1.100 -p 6379 -a s3cr3tp4ss INFO server | grep redis_version
«`
Если используется TLS (шифрование), добавьте флаг `—tls`:
«`bash
redis-cli —tls -h redis.example.com -p 6380 -a password INFO server | grep redis_version
«`

Полезно знать: В облаках порт по умолчанию может отличаться. Например, в AWS ElastiCache для Redis с TLS — это 6380. Уточняйте параметры подключения в консоли управления.

Альтернатива: проверка через telnet или netcat

Если `redis-cli` недоступен, можно использовать `telnet` или `nc`:
«`bash
echo ‘INFO server’ | nc 192.168.1.100 6379
«`
Однако такой способ менее удобен, так как вывод неструктурирован и требует ручного анализа. Кроме того, при включённой аутентификации сервер вернёт ошибку `NOAUTH`, и потребуется отправить `AUTH` в правильном формате протокола RESP.

Автоматизация проверки: скрипты на Bash и Python

Для регулярного мониторинга нескольких экземпляров Redis полезно автоматизировать проверку версии. Ниже — примеры скриптов.

Bash-скрипт для массовой проверки

«`bash
#!/bin/bash
SERVERS=(
«192.168.1.10:6379:pass1»
«192.168.1.11:6379:pass2»
«redis-cloud.example.com:6380:cloudpass»
)
for server in «${SERVERS[@]}»; do
IFS=’:’ read -r host port password <</dev/null | grep -oP ‘redis_version:K.*’)
if [ -n «$version» ]; then
echo » Версия: $version»
else
echo » ОШИБКА: не удалось подключиться»
fi
done
«`
Скрипт выводит версию каждого сервера или сообщение об ошибке. Флаг `—no-auth-warning` скрывает предупреждения о пароле в консоли.

Python-скрипт с использованием библиотеки redis-py

Установите библиотеку:
«`bash
pip install redis
«`
Код:
«`python
import redis
def check_redis_version(host, port, password=None, use_tls=False):
try:
client = redis.Redis(
host=host,
port=port,
password=password,
ssl=use_tls,
socket_connect_timeout=5,
decode_responses=True
)
info = client.info(«server»)
print(f»{host}:{port} — версия {info[‘redis_version’]}»)
except Exception as e:
print(f»{host}:{port} — ошибка: {e}»)
# Пример вызова
check_redis_version(«192.168.1.10», 6379, «pass1»)
check_redis_version(«redis.example.com», 6380, «cloudpass», use_tls=True)
«`
Такой подход позволяет интегрировать проверку в системы мониторинга, логирования или CI/CD.

Метод
Точность
Автоматизация
Требует клиента
INFO server
Высокая (серверная версия)
Лёгкая
Да
—version
Низкая (только клиент)
Средняя
Да
Telnet / Netcat
Средняя
Сложная
Нет
Python-скрипт
Высокая
Высокая
Нет (но нужна библиотека)

Определение версии Redis в Docker и Kubernetes

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

Проверка в Docker

Если Redis запущен через Docker, сначала найдите ID контейнера:
«`bash
docker ps | grep redis
«`
Затем выполните команду внутри контейнера:
«`bash
docker exec -it CONTAINER_ID redis-cli INFO server | grep redis_version
«`
Или проще — без входа в интерактивный режим:
«`bash
docker exec CONTAINER_ID redis-cli —raw INFO server | grep redis_version
«`
Флаг `—raw` убирает лишние символы форматирования.
Если Redis не установлен в контейнере, но образ запущен, можно посмотреть тег:
«`bash
docker inspect CONTAINER_ID | grep -i image
«`
Но это не гарантирует соответствие, так как образ мог быть переопределён.

В Kubernetes

Используйте `kubectl`:
«`bash
kubectl get pods -n ваш_namespace | grep redis
kubectl exec -n ваш_namespace POD_NAME -c redis-container — redis-cli INFO server | grep redis_version
«`
Если в поде несколько контейнеров, укажите имя контейнера через флаг `-c`.

Полезно знать: В Helm-чартах версия Redis указывается в значении image.tag. Проверяйте values.yaml, но всегда сверяйтесь с реальным состоянием через INFO.

Типичные ошибки и как их избежать

При проверке версии Redis пользователи сталкиваются с рядом распространённых проблем.

Ошибка 1: NOAUTH Authentication required

Сервер возвращает:
«`
(error) NOAUTH Authentication required.
«`
Решение: добавьте пароль через `AUTH` или флаг `-a`. Убедитесь, что пароль корректен и не содержит спецсимволов, требующих экранирования.

Ошибка 2: Could not connect to Redis at … Connection refused

Причины:

  • Redis не запущен;
  • Брандмауэр блокирует порт;
  • Сервер слушает только localhost (параметр bind 127.0.0.1 в redis.conf).

Проверьте статус службы:
«`bash
systemctl status redis
«`
Или настройки конфигурации:
«`bash
grep -E «bind|port» /etc/redis/redis.conf
«`

Ошибка 3: SSL handshake failed

Возникает при попытке подключиться к серверу с TLS без флага `—tls`. Решение — использовать `—tls` и, при необходимости, указать сертификат:
«`bash
redis-cli —tls —cert cert.pem —key key.pem -h host -p 6380 INFO server
«`

Ошибка 4: Несоответствие версий в кластере

В Redis Cluster все узлы должны работать на одной версии. Если один узел на 6.0, а другой на 7.0 — возможны сбои в репликации или шардировании.
Рекомендация: проверяйте версию на каждом узле отдельно.

Экспертное мнение

Проверка версии Redis должна быть частью регулярного аудита инфраструктуры. Особенно это важно при использовании старых версий, которые больше не получают обновлений безопасности. Например, Redis 4.0 достиг end-of-life в 2022 году, а 5.0 — в 2023.
Используйте команду `INFO` как стандартный метод диагностики — она даёт не только версию, но и другие метрики: время работы, нагрузку, использование памяти. Это помогает быстро оценить общее состояние сервера.
При работе с облачными провайдерами сверяйте версию не только через CLI, но и в панели управления. Иногда обновления применяются автоматически, и версия может измениться без вашего ведома.
Автоматизируйте проверку версии в CI/CD и системах мониторинга. Например, добавьте этап в GitLab CI, который будет блокировать деплой, если версия Redis ниже требуемой.

Вопросы и ответы

Можно ли проверить версию Redis без пароля?
Нет, если включена аутентификация. Сервер вернёт ошибку NOAUTH. Однако, если Redis развёрнут в доверенной сети без пароля (что не рекомендуется), команда INFO сработает.
Как узнать, какая версия Redis считается актуальной?
Официальная страница проекта — https://redis.io/download. На момент апреля 2026 года стабильной версией является Redis 7.2. Последние версии получают исправления уязвимостей и новые функции.
Что делать, если версия Redis устарела?
Запланируйте обновление. Используйте стратегию «сначала реплика, потом мастер» в кластере. Перед обновлением сделайте резервную копию данных (SAVE или BGSAVE) и протестируйте на staging-среде.
Поддерживает ли Redis команду VERSION, как в некоторых других СУБД?
Нет, такой команды нет. Единственный способ — INFO server. В будущем возможно появление отдельной команды, но на данный момент это не реализовано.
Можно ли проверить версию Redis через HTTP?
Напрямую — нет. Redis не имеет встроенного HTTP-интерфейса. Но некоторые прокси (например, Redis Exporter для Prometheus) предоставляют метрики через HTTP. Там также доступна версия: redis_version_info{version="7.0.15"}.

Заключение

Определение версии Redis — простая, но критически важная задача для администраторов и разработчиков. От версии зависит безопасность, производительность и доступность новых функций. Самый надёжный способ — команда `INFO server`, выполняемая через `redis-cli`. Альтернативные методы, такие как `—version`, дают лишь частичную картину и могут ввести в заблуждение.

Регулярно проверяйте версию Redis в своих средах, особенно в production. Интегрируйте проверку в процессы мониторинга и CI/CD. Это поможет избежать сбоев, связанных с устаревшим ПО, и обеспечит стабильную работу приложений.
  • Используйте INFO server — это самый точный способ получения версии.
  • Не полагайтесь на redis-cli --version — он показывает версию клиента, а не сервера.
  • Автоматизируйте проверку в скриптах и системах мониторинга.
  • Следите за end-of-life версий и своевременно обновляйтесь.
  • Проверяйте каждый узел в кластере отдельно для обеспечения согласованности.
⚠️ Дисклеймер — нажмите, чтобы развернуть

Материалы, опубликованные в разделе «Блог» на сайте RU DESIGN SHOP (rudesignshop.ru), носят исключительно информационный и ознакомительный характер и не являются руководством к действию, финансовой рекомендацией, медицинской услугой, ветеринарным назначением либо рекламой товаров и услуг, включая азартные игры. Публикации не содержат призывов к участию в азартных играх и не направлены на продвижение соответствующих операторов.

Безопасность применения товаров и веществ: при использовании строительных материалов, бытовой химии, пестицидов и агрохимикатов необходимо строго следовать инструкциям производителя и действующему законодательству Российской Федерации, включая Федеральный закон РФ от 19.07.1997 № 109-ФЗ «О безопасном обращении с пестицидами и агрохимикатами».

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

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

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

Правовая ответственность: решения, принятые на основе опубликованной информации, пользователь принимает самостоятельно и на свой риск; редакция и авторы несут ответственность в пределах, установленных законодательством Российской Федерации.

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

Упоминание организаций с ограниченным статусом: компания Meta Platforms Inc. (социальные сети Facebook и Instagram) признана экстремистской организацией решением суда РФ, её деятельность запрещена на территории Российской Федерации; любые упоминания приводятся исключительно в информационных целях.

Авторские права и источники: информация собирается из открытых источников; её актуальность указывается на дату публикации и может изменяться.

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

Персональные данные и cookies: сайт использует cookies и обрабатывает персональные данные пользователей в соответствии с Федеральным законом № 152-ФЗ «О персональных данных» и Политикой конфиденциальности RU DESIGN SHOP.

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