2016-03-24 2 views
2

На мой взгляд, с развитием ключей «хэш-конфликт» будет возникать все чаще и чаще. Я понятия не имею, хранятся ли эти ключи в одном слоте в односвязном списке, тогда будет выполняться производительность чтения, особенно устаревшая запись?Почему у коммутатора redis есть только 16384 слота?

+0

Прочитайте спецификацию - слоты кластера не так, как вы думаете. –

ответ

1

Эти «слоты» - это всего лишь единица распределения по осколкам. У вас не будет серверов 16K-серверов в кластере; но они достаточно гранулированы, чтобы обеспечить некоторую степень взвешенного распределения нагрузки. (Например, если вы начинаете с четырех осколков на одном типе оборудования и выбираете ввести еще два более мощных профиля, вы можете сделать новые серверы целями в два раза больше слотов, чем существующие серверы, и, таким образом, добиться более равномерного использования . от вашей способности

Я просто суммируя суть того, как они используются для подробной информации читайте Redis Cluster Specification

0

ответ от antirez

причина в том..

  • Normal Пакеты сердечного ритма несут f ull конфигурация узла, которая может быть заменена идемпотентным способом старым, чтобы обновить старую конфигурацию. Это означает, что они содержат конфигурацию слотов для узла в необработанном виде, который использует 2k пространства с слотами16k, но будет использовать запретительное 8k пространства с использованием слотов 65k.
  • В то же время маловероятно, что Redis Cluster будет масштабироваться до узлов более 1000 матов из-за других компромиссов проекта.

Таким образом, 16k находилось в правильном диапазоне, чтобы обеспечить достаточное количество слотов на одного ведущего с макс. 1000 матов, но достаточно небольшое число, чтобы легко разложить конфигурацию слота в виде необработанного растрового изображения. Обратите внимание, что в небольших кластерах битмап будет трудно сжимать, потому что, когда N мало, битмап будет иметь слоты/N бит, заданные большим количеством бит.

Смежные вопросы