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

Redis

Redis — это высокопроизводительная In-Memory база данных, использующая оперативную память для хранения структуры «ключ — значение».

Что даёт

Традиционные реляционные базы вроде PostgreSQL или MySQL сохраняют всё на диск. Даже с набором индексов и на NVMe-накопителях чтение занимает миллисекунды. Redis держит весь рабочий набор данных прямо в RAM, поэтому отдает и записывает их со скоростью в доли миллисекунды.

При этом Redis — это не примитивное key-value хранилище вроде Memcached. Он умеет из коробки работать с развитыми структурами данных: списками, множествами, хеш-таблицами, отсортированными множествами (Sorted Sets) и Pub/Sub каналами. Вам не нужно забирать весь объект в приложение, чтобы модифицировать одно поле — Redis сделает это атомарно прямо в памяти.

За что его ценят в инфраструктуре:

  • Минимальные задержки. Время отклика на запрос стабильно держится в районе субмиллисекунд.
  • Разгрузка основной БД. Повторяющиеся тяжёлые SQL-запросы (каталоги, счетчики, корзины) кешируются и не доходят до диска.
  • Атомарность операций. Любые изменения структур происходят в один поток, без гонок данных (race conditions).
  • Снапшоты на диск. Данные можно периодически сбрасывать на диск (RDB) или писать append-only лог (AOF), чтобы не потерять состояние при перезагрузке сервера.

Как использовать

Чаще всего Redis ставят как вспомогательный слой между приложением и реляционной базой данных.

  1. Кеширование и сессии. В Redis сбрасывают авторизационные токены пользователей, корзины интернет-магазинов и готовый HTML-вывод блоков CMS. При перезапуске PHP-FPM или Node.js юзеры не «вылетают» из личных кабинетов.
  2. Очереди задач (Message Broker). За счёт структур типа List и Stream базы используют как легкую альтернативу RabbitMQ для Celery, Laravel Queues или Sidekiq. Тяжёлая задача (отправка письма, генерирование PDF) кладется в очередь, а фоновый воркер забирает её через LPOP или BRPOP.
  3. Счётчики и лимитёры. Для защиты от спама (Rate Limiting) или подсчёта просмотров на страницах идеально подходят команды INCR и EXPIRE. Вы увеличиваете счётчик за одну операцию и задаёте время жизни ключа (TTL).
  • Хостинг для сайта

    Хостинг для сайта

    Мощный и надежный виртуальный хостинг для сайта с поддержкой 24/7
    Подробнее
  • Почта на домене

    Почта на домене

    Позволяет создавать и использовать адреса электронной почты, привязанные к вашему доменному имени, улучшая профессиональный имидж.
    Подробнее
  • Конструктор сайтов

    Конструктор сайтов

    Генерация сайта за считанные минуты
    Подробнее