Мне нужна помощь, чтобы четко понять Redis Sharding и его связь с базой данных Redis - PullRequest
0 голосов
/ 20 апреля 2020

Итак, я довольно новичок в Redis и пытаюсь настроить кластер Redis с помощью Redis Enterprise.

Я обращаюсь к следующей документации:

https://redislabs.com/blog/multi-tenancy-redis-enterprise/

В конце концов, он говорит:

Shard: A shard is an open source Redis instance. Redis, being a single-threaded process, runs on one CPU core. You could maximize your throughput by running a shard on each CPU core.
  • Вопросы по выше:

    1. Означает ли это, что если мой хост тогда 4-ядерный процессор предлагает запустить 4 разных экземпляра redis на каждом ядре? Если да, то как это достигается? Я действительно не знаю, как раскрутить 4 разных экземпляра Redis и сказать им всем, что они должны работать на разных процессорах.
    2. Раздробление будет иметь смысл для меня, только если я смогу использовать оперативную память с нескольких серверов. Оперативная память на одном процессоре в любом случае ограничена, и разделение на одну оперативную память кажется мне очень противоречивым. Есть ли способ использовать ОЗУ с нескольких серверов и шард через несколько ОЗУ. Это на самом деле не объясняет, как шардинг помогает в случае, когда ОЗУ все равно ограничено.

После этого в документе говорится:

Database: A database is the logical endpoint that holds the data for a tenant. You can assign multiple shards to a database to meet any data set size or throughput requirements....
  • Вопросы по приведенному выше утверждению:

    1. Что означает логическая конечная точка? Кроме того, если база данных хранит данные только для одного арендатора, то как можно убедиться, что указанная база данных c содержит сегменты, в которых хранятся данные только для определенного арендатора c? Означает ли это, что база данных представляет собой логический набор фрагментов, принадлежащих только определенному c арендатору?

    2. Как этот кластер узнает, для какого арендатора указан указанный ключ c ? Сделано ли это на основе ключа шарда, который я должен определить во время настройки кластера? Я не вижу способа выбрать ключ сегмента во время настройки кластера Redis Enterprise. Когда и как это делается? Все это очень сбивает меня с толку.

Затем говорится следующее об узле

Node: A node is a physical server, virtual machine, container or cloud instance on which the Redis Enterprise software is installed. At any given time, a node can include between zero and a few hundred Redis databases.
  • Вопрос

Обычно в кластере redis есть несколько узлов и кластер базы данных на нескольких узлах? Будут ли несколько процессорных ядер в нескольких узлах рассматриваться как сам по себе узел, так как, по-видимому, для каждого ядра выполняется один экземпляр redis?

В общем, концепция сегмента, базы данных и узла в кластере redis в redis enterprise стало очень запутанным из-за того, как это объясняется.

Я был бы очень признателен, если бы кто-нибудь мог помочь мне понять вышесказанное и объяснить простым языком связь между ними.

...