redis (dump 2015)

Post on 15-Jul-2015

141 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Redis — вообще,и кластер — в частности

Георгий Бажуков

Что есть Redis?

Key-value? ≈Memcached?

Redis vs Memcached

Least recently used (LRU)

+/– +

Сохранность + –Типы данных + –

Key-Value?

Key-Key - Value

Key ∩ Key - Value

Key[n] - Value

Что это даёт?

Как обычно используется

Ускоряем то, что едваползает:● кэш● сессии

Очередь

Или так

Fail

Надежная очередь

Забери справа, положи влево.Сделал? – Удали!

Очередь 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

vcccccccccccccczhyujnnnnnn

Особое мнение кота

top related