Профессиональная конференция разработчиков высоконагруженных систем

Redis, такой простой и такой сложный!

Базы данных и системы хранения

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Redis уже давно не является чем-то новым. Каждый использует его немного по-своему и практически каждый думает, что это всё элементарно. Этот доклад покажет, что возможностей и нюансов очень много и даже если сейчас вам это не понадобится, когда-то пригодится точно.

Целевая аудитория

архитекторы, разработчики высоконагруженных систем, devops

Тезисы

Redis - это мощное, быстрое и надежное решение для хранения данных в памяти и наверное, не будет преувеличением утверждение от том, что в последнее время сложно встретить информационную систему, архитектура которой не использует кэширование на базе Redis.

Однако, несмотря на всю простоту в использовании, Redis имеет сложную архитектуру, которая требует тщательного изучения и понимания для эффективного использования и масштабирования, что особенно актуально под высокой нагрузкой. Давайте вместе заглянем в этот черный ящик и откроем много интересного и полезного для развития своих highload систем.

В рамках доклада мы рассмотрим три основных варианта развертывания:
• Redis Standalone
• Redis Sentinel
• Redis Cluster

Остановимся на особенностях работы Redis для каждой топологии и поговорим об отличиях при работе с Redis Standalone и Redis Cluster со стороны приложения.

При проектировании высоконагруженных систем нельзя просто взять и пройти мимо темы отказоустойчивости кластера Redis и его внутреннего устройства.

Говоря про хранение данных в Redis, важно поговорить и про сами данные. Сделаем обзор поддерживаемых типов данных, особое внимание уделим интересным структурам данных – Streams, Sorted Set, HyperLogLog, Bitmap. На реальных примерах из жизни посмотрим, как эти структуры данных можно эффективно использовать для решения задач.

Также затронем паттерны и антипаттерны использования Redis, особенно в части использования SCAN, KEYS, DEL, EXPIRE и влияние на производительность. Приоткроем завесу тайны и узнаем какие removal policy реализованы в Redis.

Поговорим про механизмы восстановления данных на базе RDB и AOF и влияние на производительность. Какой выбрать для вашего конкретного проекта и в какой конфигурации?

Поднимем тему тюнинга как в части параметров ОС, так и в части тонкой настройки самого Redis, например, maxmemory, maxmemory-policy, lfu-decay-time. Коснемся политик вытеснения (noeviction, lru, lfu, random, ttl), которые реализует Redis.
Проведем сравнение с конкурентными продуктами, которые позиционируют себя как drop-in replacement, на примере Dragonfly и оценим его готовность к промышленному применению.

Заключение
В целом, Redis является мощным и гибким инструментом для работы с данными, который имеет простой интерфейс, но сложную архитектуру. В рамках доклада я покажу, что для эффективного использования Redis необходимо глубокое понимание его архитектуры и принципов работы, что позволит нам создавать высокопроизводительные и надежные системы.

CTO компании STM Labs.

STM Labs

STM Labs — российский разработчик программного обеспечения. Умеют всё: от проектирования и создания высоконагруженных систем до приложений и интеграции. Более 10 лет компания STM Labs реализует проекты и создает IT-решения различной сложности для бизнеса, в том числе применяя собственную платформу flexiflow.

Видео