Перейти к основному содержимому

Модель данных Redis

Redis в TradeJS — оперативное хранилище server state и временных артефактов. Production deployment и config стратегий находятся в tradejs.config.ts.

Основные группы ключей

  • Пользователи: users:index:<user>
  • Trading accounts: users:<user>:trading-accounts:<accountId>
  • Optional manual pause: users:<user>:runtime:controls
  • Deployment heartbeat: users:<user>:runtime:deployments:<deployment>:heartbeat
  • Audit control events: users:<user>:runtime:strategy-control-events:*
  • Конфиги бэктестов: users:<user>:backtests:configs:<config>
  • Артефакты бэктестов: users:<user>:tests:<strategy>:<testName>:(config|stat|orders)
  • Ключи сигналов и индексы по символам
  • AI-анализ: analysis:<symbol>:<signalId>
  • Временные backtest-ключи (чанки/статистика)

TTL-политика

Используется смешанный подход:

  • часть ключей краткоживущая (кэш, временные результаты),
  • часть среднесрочная (сигналы, история),
  • конфиги обычно долговечные.

Отсутствующий runtime:controls валиден и означает «следовать Git enabled». Pause создаёт override, resume удаляет его и пустой документ. Runtime не читает users:<user>:strategies:*, Redis deployment/release документы или per-symbol results как production config.

Правила эксплуатации

  • Не делайте глобальный flush Redis в проде.
  • Используйте scoped cleanup (npx @tradejs/cli clean-redis).
  • Относитесь к Redis как к критической runtime-зависимости.

Как дебажить

  • Начинайте с нужного namespace (user, symbol, strategy).
  • Сверяйте ожидаемые ключи с реально существующими.
  • При пропавших сигналах проверяйте declaration и package manifest образа, account binding, optional controls, heartbeat и signal/evaluation keys.