Настройка Redis

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

Добавлено в версии 2.8:

  • Redis устанавливается по умолчанию вместе с сервером и доступен по адресу 127.0.0.1:32459

  • Конфигурация Redis находится по пути /etc/rudesktop/redis.conf

  • При необходимости можно использовать внешний Redis

Описание

Кеширование — это мощный метод, используемый для повышения производительности и эффективности приложения путём временного хранения часто используемых данных в памяти системы

Важно

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

Сервер RuDesktop поддерживает кеширование с использованием Redis

Какие компоненты используют Redis

Redis используется одновременно несколькими компонентами RuDesktop:

  • relay / rz — нативные компоненты сервера. Адрес Redis задаётся параметром redis_server в файле /etc/rudesktop-relay.toml

  • web / backend — Django-часть сервера. Адрес Redis задаётся переменной окружения REDIS_URL в файле /etc/default/rudesktop

Важно

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

Настройка подключения к внешнему Redis

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

  1. В файл по пути /etc/rudesktop-relay.toml добавьте параметр redis_server:

    Без аутентификации

    redis_server = "redis://address:port"
    

    С аутентификацией

    redis_server = "redis://:password@address:port"
    

    Подсказка

    • password — пароль

    • address:port — адрес и порт внешнего Redis

    Важно

    В том же файле /etc/rudesktop-relay.toml можно переопределить дополнительные параметры кеша relay/rz:

    # Время жизни записей в кеше, в секундах (по умолчанию 300)
    cache_ttl = 300
    # Загружать все устройства в кеш при старте сервера (по умолчанию false)
    cache_preload = false
    # Период сохранения кеша устройств в базу, в секундах (по умолчанию 60)
    flush_interval = 60
    # Количество записей для пакетного сброса в базу (по умолчанию 1000)
    flush_batch = 1000
    
  2. В файл по пути /etc/default/rudesktop добавьте переменные:

    REDIS_URL="redis://address:port"
    # или с аутентификацией
    REDIS_URL="redis://:password@address:port"
    
    RELAY_ARGS='-C /etc/rudesktop-relay.toml'
    

    Важно

    REDIS_URL должен указывать на тот же инстанс Redis, что и redis_server

  3. Перезапустите сервер:

    rude restart
    

Проверка подключения

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

redis-cli -h <address> -p <port> -a <password> PING

Ответ PONG подтверждает доступность Redis

Безопасность

При сетевой доступности Redis обязательно примите меры безопасности:

  • Настройте привязку (bind) только к необходимым интерфейсам

  • Обязательно установите пароль (requirepass в конфигурации Redis)

  • Ограничьте доступ правилами межсетевого экрана, разрешающими соединения только с IP-адресов узлов RuDesktop

Подсказка

Подробнее о вынесении Redis и PostgreSQL в общий контур для нескольких узлов RuDesktop см. на странице Развертывание отказоустойчивого кластера