<p>? Техническое задание (ТЗ) для разработчика</p><p>Проект: Настольные онлайн-игры (Domino, Backgammon и др.)</p><p>Стек: Node.js + Express (клиент + сервер)</p><p>Задача: Настройка Redis для масштабирования и исправление багов</p><p>? Что нужно сделать</p><p>Установка и настройка Redis</p><p>Установить Redis на сервер.</p><p>Настроить его для кэширования и синхронизации данных между процессами.</p><p>Обеспечить корректную работу при запуске проекта в нескольких процессах (PM2/cluster).</p><p>Интеграция Redis в проект</p><p>Подключить Redis к существующему Node.js + Express приложению.</p><p>Настроить pub/sub или <a href="http://socket.io">socket.io</a>-redis для обмена событиями.</p><p>Синхронизировать данные (онлайн, комнаты, игровые действия).</p><p>Исправление ошибок после интеграции</p><p>После тестов на 2 ядра были выявлены проблемы:</p><p>Игроки в комнатах не видят друг друга до обновления страницы.</p><p>При старте игры: игрок сделал ход, а соперник видит камни только после нескольких F5.</p><p>Список онлайна обновляется некорректно (у одного видно, у другого нет).</p><p>Появляются дубликаты игровых элементов (домино-камни, фишки).</p><p>На одном ядре работает идеально, на 2–3 — начинаются эти баги.</p><p>? Нужно найти причину и исправить так, чтобы всё работало стабильно при многопроцессном запуске.</p><p>WebSocket / <a href="http://Socket.io">Socket.io</a></p><p>Проверить и настроить работу через Redis Adapter.</p><p>Исключить потерю событий и рассинхрон между игроками.</p><p>Проверить стабильность при 8+ ядрах.</p><p>Оптимизация использования памяти Redis.</p><p>Настройка TTL для ключей.</p><p>Документация по установке/запуску Redis на новых серверах.</p>