Redis Cluster сначала отображает ключ в один из 16 384 hash slots, а затем slot — в узел. При hash(key) % N изменение числа узлов обычно перераспределяет почти все ключи.
В чём разница между хешированием ключей в 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 изменение числа узлов обычно перераспределяет почти все ключи.
Slots можно переносить между узлами без изменения функции ключ → slot. Redis использует CRC16 с выделением hash tag в фигурных скобках, если он корректно задан. Это позволяет размещать связанные ключи вместе для операций с ограничением одного slot. Наличие slots не устраняет hot keys и не является классическим consistent hashing с кольцом.
Источник: redis.io.