SlideShare a Scribd company logo
Redis — вообще,
и кластер — в частности
Гоша Бажуков
bazhukov.net @_bugov
Что есть Redis?
Key-value? ≈Memcached?
Redis vs Memcached
Least recently
used (LRU)
+/– +
Сохранность + –
Типы данных + –
Key-Value?
Key-Key - Value
Key ∩ Key - Value
Key[n] - Value
Что это даёт?
Как обычно используется
Ускоряем то, что едва
ползает:
● кэш
● сессии
DUMP-2015: «Redis Кластер» Георгий Бажуков, Nevesta.info
Очередь
Или так
Fail
Надежная очередь
Забери справа, положи влево.
Сделал? – Удали!
Resque
PHP-Resque
python-rq
DUMP-2015: «Redis Кластер» Георгий Бажуков, Nevesta.info
DUMP-2015: «Redis Кластер» Георгий Бажуков, Nevesta.info
Очередь PubSub
Надёжность Масштабируемость
Легковесность Низкая связанность
Посчитаем!
Множества
Уникальность
Проверка
Объединение
Неделя 1 Неделя 2
Битовые операция
Бита достаточно
user_id = offset
Логическое “ИЛИ” по битовым строкам
HyperLogLog
HyperLogLog
● Мат. стат.
● Магия
● 12 кб
HyperLogLog Нет объединений,
пересечений
Битовые строки Бинарные данные
Множества Самое общее
решение
Кластер
Отказоустойчивость?
Sentinels (“стражи”)
● Мониторинг состояния мастера и реплик
● Уведомления о том, что “всё не так”
● Автоматическая реконфигурация
… с версии 2.6
Чем заняты:
Упал? Голосуем!
NODE_TIMEOUT
QUORUM “стражей”
Большинство
SLAVEOF NO ONE
Приоритеты “стражей”
● Как давно общался с мастером.
● Приоритет реплики.
● Задержка реплики.
● Run ID.
Netsplit
Fail
Failover
Теряем данные min-slaves-to-write
Масштабируемость
Кластер, которого нет
● Обещан в 2011-ом году.
● Внезапный PubSub.
● Sentinel c 2.6 для отказоустойчивости.
● …
● 2.8
● …
● 3.0?
Долгожданный Redis 3
Ноды общаются
Внутренний протокол
Клиент стал умнее
Шардируем
Считаем слот
Slot = CRC16(key) mod 16384
“Ложка дёгтя”
Операции на многих ключах
#HashTag
MSET {dump}.month March
{dump}.year 2015
- на одной ноде
bazhukov.net @_bugov
vcccccccccccccczhyujnnnn
nn
Особое мнение кота

More Related Content

PDF
Redis (Dump 2015)
PPT
Redis: возможности, выгоды, примеры использования
PPTX
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
ODP
Новые нереляционные системы хранения данных
PDF
Автоматизированные рефакторинги: AST, FST и все-все-все
PDF
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
PDF
Moбильная база данных Realm. Прошло ли время SQLite?
PPTX
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Redis (Dump 2015)
Redis: возможности, выгоды, примеры использования
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Новые нереляционные системы хранения данных
Автоматизированные рефакторинги: AST, FST и все-все-все
Доменно специфичные базы данных и рассылка Aviasales, Борис Каплуновский (Avi...
Moбильная база данных Realm. Прошло ли время SQLite?
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...

What's hot (19)

PDF
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
PPTX
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
PDF
Near-realtime аналитика событий в высоконагруженном проекте
PDF
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
PPTX
Диагностика postgresql для системного администратора
PDF
HBase on Dev{Highload}
PDF
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
PPTX
Поиск наизнанку
PDF
Piterpy #2. Быстродействие Python в Web. Постреляем по веб-серверу?
PDF
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
PPT
Автоматизированные рефакторинги: AST, FST и все-все-все - Кирилл Борисов, Яндекс
PDF
специализированные http-демона (Сергей Боченков, Александр Панков)
PDF
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
PDF
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
PDF
Профилирование кода на C/C++ в *nix системах
PPSX
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
PDF
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
PDF
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
PDF
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Как мы храним и анализируем большой социальный граф, Максим Бартенев (Норси-т...
Near-realtime аналитика событий в высоконагруженном проекте
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Диагностика postgresql для системного администратора
HBase on Dev{Highload}
"Распределенные" вычисления на мобильных платформах. Зачем еще нужен "металли...
Поиск наизнанку
Piterpy #2. Быстродействие Python в Web. Постреляем по веб-серверу?
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Автоматизированные рефакторинги: AST, FST и все-все-все - Кирилл Борисов, Яндекс
специализированные http-демона (Сергей Боченков, Александр Панков)
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Профилирование кода на C/C++ в *nix системах
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Ad

Viewers also liked (12)

PDF
К. Жагорина "Насколько уникально ФИО?" DUMP-2014
PDF
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
PPTX
DUMP-2015: «Как размножаются программисты» Николай Ясинский, Сигнал, Казань
PDF
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
PPTX
А. Аксенов "Как мы разрабатываем Сфинкс", DUMP-2014
PPT
А. Аксенов "Как устроен NoSql", DUMP-2014
PDF
Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур
PDF
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PDF
TechLeads meetup: Макс Лапшин, Erlyvideo
PPTX
TechLeads meetup: Евгений Потапов, ITSumma
PDF
TechLeads meetup: Алексей Рыбак, Badoo
PPTX
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
К. Жагорина "Насколько уникально ФИО?" DUMP-2014
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
DUMP-2015: «Как размножаются программисты» Николай Ясинский, Сигнал, Казань
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
А. Аксенов "Как мы разрабатываем Сфинкс", DUMP-2014
А. Аксенов "Как устроен NoSql", DUMP-2014
Кодогенерация на службе оптимизации, Игорь Чевдарь, СКБ Контур
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
TechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
Ad

Similar to DUMP-2015: «Redis Кластер» Георгий Бажуков, Nevesta.info (20)

PPTX
IOP202 Redis in Azure
PPTX
Redis in live
PPTX
Open source субд глазами обычного программиста
PDF
Enter: legacy code
PDF
Cоздаем пробки или тюнинг postgresql для расчетных задач
PPT
Rybak Big Projects New
PDF
CodeFest 2012. Евтухович И. — Как мы делали Групон
PDF
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
PDF
Оценка производительности hadoop кластера.
PPT
CodeFest 2012. Сидельников А. — Опыт создания DSL на Ruby. Где применить, как...
PDF
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
PPTX
DUMP-2012 - Базы данных - "MongoDB" Тимофей Миронов (Timeliner)
PPTX
MongoDB. Как готовить, с чем едят?
PDF
20111002 information retrieval raskovalov_lecture3
PDF
Сергей Чистович "Подходы к кешированию на UGC-сервисе"
ODP
ekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
PDF
Дмитрий Дегтярев, "Хабикаса"
PDF
Pconnect: граната в руках обезьяны
PDF
Pconnect: граната в руках обезьяны (Сергей Аверин)
IOP202 Redis in Azure
Redis in live
Open source субд глазами обычного программиста
Enter: legacy code
Cоздаем пробки или тюнинг postgresql для расчетных задач
Rybak Big Projects New
CodeFest 2012. Евтухович И. — Как мы делали Групон
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Оценка производительности hadoop кластера.
CodeFest 2012. Сидельников А. — Опыт создания DSL на Ruby. Где применить, как...
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
DUMP-2012 - Базы данных - "MongoDB" Тимофей Миронов (Timeliner)
MongoDB. Как готовить, с чем едят?
20111002 information retrieval raskovalov_lecture3
Сергей Чистович "Подходы к кешированию на UGC-сервисе"
ekbpy'2012 - Марк Коренберг - Системное программирование на Питоне
Дмитрий Дегтярев, "Хабикаса"
Pconnect: граната в руках обезьяны
Pconnect: граната в руках обезьяны (Сергей Аверин)

More from it-people (20)

PDF
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
PDF
«Scrapy internals» Александр Сибиряков, Scrapinghub
PDF
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
PDF
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
PDF
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
PDF
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
PDF
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
PDF
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
PDF
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
PDF
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
PDF
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
PDF
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
PDF
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
PDF
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
PDF
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
PDF
«(Без)опасный Python», Иван Цыганов, Positive Technologies
PDF
«Python of Things», Кирилл Борисов, Яндекс
PDF
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
PDF
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
PDF
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«Python of Things», Кирилл Борисов, Яндекс
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...

DUMP-2015: «Redis Кластер» Георгий Бажуков, Nevesta.info