Redis — открытое in-memory хранилище данных, созданное Сальваторе Санфилиппо в 2009 году. Данные хранятся в оперативной памяти (RAM) — отсюда субмиллисекундная латентность. Redis поддерживает разнообразные структуры данных и используется как кеш, брокер сообщений, хранилище сессий и очередей задач.
Структуры данных
- String — базовый тип. Строка, число, бинарные данные до 512 МБ. Команды: GET, SET, INCR.
- Hash — словарь полей. Подходит для хранения объектов. HGET, HSET, HGETALL.
- List — двусвязный список. LPUSH, RPOP. Используется для очередей.
- Set — множество уникальных строк. SADD, SMEMBERS, SINTER.
- Sorted Set (ZSet) — множество с числовым весом (score). Рейтинги, лидерборды.
- Pub/Sub — подписка на каналы для передачи сообщений в реальном времени.
Персистентность
Redis опционально сохраняет данные на диск:
- RDB — периодические снапшоты. Быстрый старт, возможна потеря данных за период между снапшотами.
- AOF — лог каждой операции записи. Минимальная потеря данных, медленнее RDB.
История
Redis создан в 2009 году итальянским программистом Сальваторе Санфилиппо (antirez). В 2010 году разработку поддержала VMware, с 2015 — Redis Labs. В 2024 году Redis Ltd. перешла на лицензию RSALv2/SSPLv1, что вызвало форк Valkey под Apache 2.0.
Связь с хостингом
Redis — стандартный компонент продакшн-стека PHP/Python/Node.js. На VDS устанавливается командой apt install redis-server. Для WordPress кеширует запросы к MySQL через плагин Redis Object Cache. Управляемые сервисы: AWS ElastiCache, Redis Cloud. Конфигурация maxmemory-policy allkeys-lru обязательна при использовании как кеша.
Redis в хостинге
Redis используется в трёх основных сценариях на хостинге: кэш страниц и объектов (снижает нагрузку на БД в 10--100 раз), хранение сессий PHP (быстрее файловых сессий, работает в кластере серверов), очереди задач (Laravel Queues, Celery в Python). На shared-хостинге Redis обычно недоступен. На VPS Redis устанавливается за несколько минут. Потребление памяти: 1 миллион ключей занимает ~100 МБ, оптимальный размер до 8--16 ГБ RAM. Политика вытеснения: maxmemory-policy allkeys-lru автоматически удаляет наименее используемые ключи при исчерпании памяти.
Redis Cluster vs Sentinel
Redis Sentinel обеспечивает высокую доступность через мониторинг master и автоматическое переключение на replica при отказе. Redis Cluster добавляет горизонтальное шардирование данных между несколькими узлами. Для большинства хостинговых задач достаточно одного Redis-инстанса с бэкапом через RDB-снапшоты. Redis 7.0 (2022) добавил Redis Functions и улучшенную безопасность ACL. Memcached -- более простая альтернатива для чистого кэширования без персистентности. Кэширование через Redis уменьшает TTFB приложений с 500 мс до 5--20 мс.
История Redis
Redis (Remote Dictionary Server) создал Сальваторе Санфилиппо (Salvatore Sanfilippo) в 2009 году для системы аналитики реального времени. Первый open-source релиз в апреле 2009 года. В 2015 году Redis Labs (ныне Redis Inc.) взяла под коммерческую поддержку. В 2024 году Redis перешёл на лицензию RSALv2/SSPLv1 (закрытая коммерческая), что вызвало создание форков Valkey и Redict под BSD-лицензией. Valkey поддерживают AWS, Google, Alibaba, Ericsson.