Настройка 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.tomlweb/backend— Django-часть сервера. Адрес Redis задаётся переменной окруженияREDIS_URLв файле/etc/default/rudesktop
Важно
При подключении внешнего Redis обязательно задайте оба значения и убедитесь, что они указывают на один и тот же инстанс. Иначе компоненты будут работать с разными хранилищами кеша и состояний — это приведёт к рассинхронизации сессий и сбоям внутренней синхронизации
Настройка подключения к внешнему Redis¶
Для подключения сервера к внешнему Redis с аутентификацией по паролю или без выполните следующие шаги:
В файл по пути
/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
В файл по пути
/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Перезапустите сервер:
rude restart
Проверка подключения¶
После перезапуска убедитесь, что сервер подключается к указанному Redis:
redis-cli -h <address> -p <port> -a <password> PING
Ответ PONG подтверждает доступность Redis
Безопасность¶
При сетевой доступности Redis обязательно примите меры безопасности:
Настройте привязку (
bind) только к необходимым интерфейсамОбязательно установите пароль (
requirepassв конфигурации Redis)Ограничьте доступ правилами межсетевого экрана, разрешающими соединения только с IP-адресов узлов RuDesktop
Подсказка
Подробнее о вынесении Redis и PostgreSQL в общий контур для нескольких узлов RuDesktop см. на странице Развертывание отказоустойчивого кластера