Redis
Redis служит слоем кеширования, который снижает нагрузку на базу данных и сокращает время отклика до миллисекунд. Наше частое решение для управления сессиями, rate limiting и очередей задач с BullMQ.
Особенности
- Хранилище ключ-значение в памяти
- Кеширование на основе TTL
- Обмен сообщениями Pub/Sub
- Очереди задач BullMQ
- Механизм распределенных блокировок
- Высокая доступность с Cluster и Sentinel
Варианты использования
- Кеширование ответов API
- Управление пользовательскими сессиями
- Rate limiting и защита от DDoS
- Очереди фоновых задач
- Таблицы лидеров (leaderboard)
Подробнее
Высокоскоростное кеширование с Redis
Redis (Remote Dictionary Server) представляет собой open source хранилище структур данных, работающее в оперативной памяти. Способный выполнять миллионы операций в секунду, Redis идеален для кеширования запросов к базе данных, управления сессиями и организации коммуникации в реальном времени с помощью паттернов pub/sub.
В проектах Detartech мы развертываем Redis на нескольких уровнях. Мы храним ответы API и результаты запросов к базе данных с помощью кеширования на основе TTL, снижая нагрузку на базу данных на 60-80% для повторяющихся запросов. Мы управляем очередью задач через библиотеку BullMQ, асинхронно обрабатывая фоновые задачи, такие как отправка e-mail, генерация отчетов и доставка webhook. Мы также предпочитаем Redis для реализации rate limiting и распределенных блокировок.
Где Detartech использует Redis?
Redis служит нашим основным инструментом для слоя кеширования. Самый конкретный пример связан с Biletico: когда в перенятой платформе продажи билетов заново строились интерфейс, схема рассадки на canvas и процесс оплаты, в стек Next.js и Node.js было встроено кеширование на Redis, а для данных использовалась MongoDB. Подход, описанный на странице услуги масштабирования бэкенда, действует и здесь: срок жизни каждой записи кеша и событие, при котором она сбрасывается, прописываются заранее, а то, что не попадает в кеш, фиксируется как отдельное решение.
Когда Redis подходит?
Redis подходит, если одни и те же данные читаются снова и снова с короткими интервалами, если под нагрузкой первой ломается база данных или если краткоживущим данным, таким как сессии, ограничение частоты запросов и очереди фоновых задач, нужен быстрый доступ. Когда измеряется доля попаданий в кеш, его выигрыш тоже становится отслеживаемым.
Когда Redis не решает проблему?
Если медленная работа вызвана запросом без индекса или запросами, повторяющимися в цикле, кеш скрывает проблему, а не устраняет ее; сначала читается план запроса. На экранах, где каждое чтение должно показывать самое свежее значение, кеш повышает риск устаревших данных, а система с устаревшими данными обходится дороже медленной. Для постоянных реляционных данных основным хранилищем у нас служит не Redis, а база данных вроде PostgreSQL.
Что мы создали с этим?
Услуги, где это используется
Смотреть всеCTO as a Service
CTO as a Service (CTO на аутсорсе): техническое руководство без штатного CTO. Журнал архитектурных решений, учёт техдолга, оценка подрядчиков и команды.
Масштабирование бэкенда
Масштабирование не сводится к серверам, оно начинается с поиска узкого места: измерение, оптимизация запросов, кэш, очереди и обратимый переход.
Примеры наших проектов
Смотреть всеLextum AI: управление юридическими документами на основе искусственного интеллекта
SaaS-платформа для юристов с генерацией документов на основе ИИ, проверкой договоров, совместной работой в реальном времени, голосовыми/видеозвонками и версионированием.
Yükpro - Платформа грузоперевозок
Мобильная платформа объявлений о грузах, объединяющая грузовладельцев и перевозчиков. Есть уведомления по маршрутам и связь в один клик по телефону или WhatsApp.
Biletico: платформа продажи билетов на мероприятия для детей
Платформа продажи билетов на мероприятия для детей. Доведена от почти нулевой функциональности до полноценного запуска благодаря схеме рассадки на основе canvas, безопасной интеграции платежей и полной переработке UX.
Используем эту технологию в вашем проекте
Наша команда специализируется на этом стеке. Давайте вместе оценим ваш проект.
Запросить бесплатную консультацию