Latest web development tutorials

раздел Redis

Раздел делится на множество экземпляров обработки Redis данных, каждый экземпляр, чтобы сохранить только часть ключа.

Преимущества разделения

  • При использовании памяти более одного компьютера и значений, позволяют построить большую базу данных.
  • Многоядерные и многопроцессорные компьютеры, что позволяет нам расширить вычислительные мощности, через несколько компьютеров и сетевых адаптеров, что позволяет нам расширить пропускную способность сети.

Неадекватное раздел

Некоторые особенности Redis в производительности разделов не очень хорошо:

  • Операция включает в себя больше, чем один ключ, как правило, не поддерживается. Например, когда два набора отображаются в различных экземпляров Redis, вы не будете в состоянии выполнить эти два набора операцию пересечения.
  • Она включает в себя не может быть использован ряд ключевых операций Redis.
  • При использовании разделов, тем более сложной обработки данных, например, вам нужно работать с несколькими RDB / АОП файлов и резервного копирования файлов из нескольких экземпляров настойчивости и хозяина.
  • Добавление или удаление емкости также является более сложным. REDIS большинство поддержка кластеров во время выполнения увеличивается, прозрачные данные удаления узлов баланс сил, но похож на раздел клиента, агенты и другие системы не поддерживают эту функцию. Тем не менее, этот метод называется presharding полезно.

Тип раздела

Redis Есть два типа разделов. Предположим, что существует четыре Redis экземпляра R0, R1, R2, R3, и аналогичные пользователя: 1 пользователь: множество ключей 2 такого представления о пользователях, принимая во внимание, чтобы выбрать различные способы, в котором ключ хранится в экземпляре , Другими словами, существуют различные системы для отображения ключ к услуге Redis.

Диапазон разделов

Самый простой способ разделить диапазон разделов отображается в диапазоне объекта конкретного экземпляра Redis.

Например, ID от 0 до 10000 пользователей будет сохранить экземпляр R0, ID от 10001-20000 пользователей будут сохранены в R1, и так далее.

Такой подход является целесообразным и практическое применение, чтобы иметь диапазон меньше, чем диапазон экземпляра отображения таблицы. Эта таблица будет управляться, но также необходимо сопоставить различные объекты, как правило, Redis не является хорошим методом.

Hash Partitioning

Другой подход заключается в хэш разбиения разделов. Это относится к любому ключу, и не обязательно должны быть object_name: Эта форма, так же просто, как описано ниже:

  • Использование хэш-функции ключа преобразуется в число, например, с помощью функции CRC32 хэш. Реализация ключа FOOBAR crc32 (FOOBAR) будет выводить Целое число подобного 93,024,922.
  • Это целое число, по модулю, который был преобразован в цифровую форму между 0-3, он может быть сопоставлен с целочисленным примеру 4 Redis быть один. 93024922% 4 = 2, то есть ключ Foobar должны быть сохранены, например R2. Примечание: Операция по модулю должен взять остаток от того, оператор% обычно реализуется с использованием различных языков программирования.