В чём разница между хешированием ключей в Redis Cluster (slots) и классическим хешированием по модулю hash(key) % N?

Redis Cluster сначала отображает ключ в один из 16 384 hash slots, а затем slot — в узел. При hash(key) % N изменение числа узлов обычно перераспределяет почти все ключи.

Короткий ответ

Что ответить на собеседовании

Redis Cluster сначала отображает ключ в один из 16 384 hash slots, а затем slot — в узел. При hash(key) % N изменение числа узлов обычно перераспределяет почти все ключи.

Подробный разбор

Ответ с пояснениями

Redis Cluster сначала отображает ключ в один из 16 384 hash slots, а затем slot — в узел. При hash(key) % N изменение числа узлов обычно перераспределяет почти все ключи.

Slots можно переносить между узлами без изменения функции ключ → slot. Redis использует CRC16 с выделением hash tag в фигурных скобках, если он корректно задан. Это позволяет размещать связанные ключи вместе для операций с ограничением одного slot. Наличие slots не устраняет hot keys и не является классическим consistent hashing с кольцом.

Источник: redis.io.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее