Redis Cluster vs. Страж 12 мая 2014 г

Следующий список содержит ответы на часто задаваемые вопросы о кэше Azure для кластеризации Redis.

Настройте кластеризацию Redis для кеша Azure Premium для экземпляра Redis

Azure Cache For Redis предлагает Redis Cluster, как реализовано в Redis. С Redis Cluster вы получаете следующие преимущества:

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

Кластеризация не увеличивает количество соединений, доступных для кластерного кэша. Для получения дополнительной информации о размере, пропускной способности и пропускной способности с премиальными кешами см. Выбор правильного уровня.

В Azure Cluster предлагается в качестве первичной/реплики модели, где каждый осколок имеет первичную/репликную пару с репликацией, где репликация управляется Azure Cache для сервиса Redis.

Кэш Azure для Redis теперь поддерживает до 30 осколков (предварительный просмотр)

Кэш Azure для Redis теперь поддерживает до 30 осколков для кластерных кешей. Кластерные кэши, настроенные с двумя репликами, могут поддерживать до 20 осколков, а кластерные кэши, настроенные с тремя репликами, могут поддерживать до 15 осколков.

Ограничения

  • Ограничение Shard для кэшей с Redis версии 4 составляет 10.
  • Ограничение Shard для кэши, затронутых пенсией облачных сервисов, составляет 10.
  • Техническое обслуживание займет больше времени, так как каждый узел потребуется примерно 20 минут, чтобы обновить. Другие операции по техническому обслуживанию будут заблокированы, пока ваш кэш находится под техническим обслуживанием.

Настройка кластеризации

Кластеризация включена Новый кэш Azure для Redis слева во время создания кеша.

  1. Чтобы создать кэш премиум -класса, войдите на портал Azure и выберите Создать ресурс. Помимо создания кэшей на портале Azure, вы также можете создать их, используя шаблоны управления ресурсами, PowerShell или Azure CLI. Для получения дополнительной информации о создании Azure Cache для Redis см. Создать ресурс
  2. На Новый Страница, выберите Базы данных а затем выберите Azure Cache для Redis. Выберите Azure Cache для Redis
  3. На Новый Redis Cache Страница, настройте настройки вашего нового премиального кеша.
    Параметр Предлагаемое значение Описание
    DNS имя Введите глобально уникальное имя. Имя кэша должно быть строкой от 1 до 63 символов. Строка может содержать только цифры, буквы или дефисы. Имя должно запустить и заканчиваться номером или буквой, и не может содержать последовательных дефисов. Экземпляр вашего кеша Имя хоста будет .Редис.кеш.окна.сеть.
    Подписка Выпадает и выберите подписку. Подписка, при которой для создания этого нового кеша Azure для экземпляра Redis.
    Ресурсная группа Раскрытие и выберите группу ресурсов или выберите Создавать новое и введите новое имя группы ресурсов. Имя для группы ресурсов для создания вашего кеша и других ресурсов. Поместив все ресурсы вашего приложения в одну группу ресурсов, вы можете легко управлять или удалить их вместе.
    Расположение Выпадает и выберите местоположение. Выберите регион рядом с другими службами, которые будут использовать ваш кэш.
    Тип кеша Раскрытие и выберите Premium Cache для настройки функций премиум-класса. Для получения подробной информации см. Кэш Azure для Redis Prigion. Уровень ценообразования определяет размер, производительность и функции, доступные для кэша. Для получения дополнительной информации см. Azure Cache для Redis Обзор.
  4. Выберите Сеть вкладка или выберите Сеть кнопка внизу страницы.
  5. в Сеть Вкладка, выберите метод подключения. Для экземпляров премиального кеша вы можете подключиться либо публично, через общедоступные IP -адреса или конечные точки сервиса, либо в частном порядке, используя частную конечную точку.
  6. Выберите Далее: Advanced вкладка или выберите Далее: Advanced кнопка внизу страницы.
  7. в Передовой Вкладка для экземпляра кэша премиум-класса настройте настройки для порта, кластеризации и устойчивости данных без TLS. Чтобы включить кластеризацию, выберите Давать возможность. Кластеризация переключенияУ вас может быть до 10 осколков в кластере. После выбора Давать возможность, Сдвиньте ползунок или введите число от 1 до 10 для Считается оскорблением и выберите ХОРОШО. Каждый осколок является первичной/реплик -кэшами, управляемой Azure, а общий размер кэша рассчитывается путем умножения количества осколков на размер кэша, выбранные в уровне ценообразования. Кластеризационная переключатель выбранОднажды

    Уникальные вопросы:

    1. Каковы преимущества использования Redis Cluster?
    2. Отвечать: Использование Redis Cluster предлагает возможность автоматического разделения вашего набора данных между несколькими узлами, продолжайте операции, когда подмножество узлов испытывает сбои или не может общаться с остальной частью кластера, и достигать большей пропускной способности и размера памяти, когда вы увеличиваете количество осколков.

    3. Может ли кластеризация увеличить количество соединений, доступных для кластерного кэша?
    4. Отвечать: Нет, кластеризация не увеличивает количество соединений, доступных для кластерного кеша.

    5. Сколько осколков делает кеш Azure для Redis, теперь поддерживает кластерные кеши?
    6. Отвечать: Кэш Azure для Redis теперь поддерживает до 30 осколков для кластерных кешей.

    7. Какой предел Shard для кэша с Redis версии 4?
    8. Отвечать: Ограничение Shard для кэши с Redis версии 4 составляет 10.

    9. Каков ограничение Shard для кэши, затронутых пенсией облачных сервисов?
    10. Отвечать: Ограничение шарда для кэши, затронутых пенсией облачных сервисов, составляет 10.

    11. Сколько времени требуется обслуживание для узла в кластерном кэше?
    12. Отвечать: Техническое обслуживание узла в кластерном кэше занимает примерно 20 минут, чтобы обновить. Другие операции по техническому обслуживанию будут заблокированы, пока ваш кэш находится под техническим обслуживанием.

    13. Как я могу настроить кластеризацию для экземпляра Azure премиум -класса для экземпляра Redis?
    14. Отвечать: Чтобы настроить кластеризацию, вы можете включить ее во время создания кэша на портале Azure. Вам необходимо выбрать соответствующий тип кэша, настроить настройки для вашего кеша и включить кластеризацию в вкладке «Дополнительно.

    15. Каковы ограничения кластеризации Redis в кэше Azure для Redis?
    16. Отвечать: Ограничения включают предел осколков 10 для кэшей с Redis версией 4, ограничение Shard 10 для кэшей, затронутых пенсией облачных сервисов, и более длительное время обслуживания для узлов в кластерном кэше.

    17. Каковы шаги по созданию премиального кеша в кэше Azure для Redis?
    18. Отвечать: Шаги включают вход на портал Azure, выбор создания ресурса, выбор кэша Azure для Redis, настройка настройки кэша, выбор соответствующих опций сети и настройка расширенных настроек, таких как кластера.

    19. Сколько осколков может кластерный кэш с двумя репликами поддержкой?
    20. Отвечать: Кластерный кэш с двумя копиями может поддерживать до 20 осколков.

    21. Сколько осколков может кластерированный кэш с тремя поддержкой реплики?
    22. Отвечать: Кластерный кэш с тремя копиями может поддерживать до 15 осколков.

    23. Что представляет каждый осколок в кластере Redis?
    24. Отвечать: Каждый осколок представляет первичную/репликную пару кэша, управляемая Azure в кластере Redis.

    25. Как репликация управляется в кластере Redis в Azure Cache для Redis?
    26. Отвечать: Репликация в кластере Redis в кэше Azure для Redis управляется Azure, где каждый Shard имеет первичную/репликную пару.

    27. Какие методы аутентификации доступны для подключения к премиальному кэше в Azure Cache для Redis?
    28. Отвечать: Вы можете подключиться к премиальному кэше в кэше Azure для Redis либо публично, через общедоступные IP -адреса или конечные точки сервиса, либо в частном порядке, используя частную конечную точку.

    29. Какие факторы следует учитывать при выборе размера кэша и уровня цен в кэше Azure для Redis?
    30. Отвечать: Размер кэша и уровень цен определяет размер, производительность и функции, доступные для кэша. Выбор должен основываться на желаемой пропускной способности, размере памяти и соображениях затрат. Портал Azure предоставляет руководство по выбору соответствующего размера кэша и уровня цен.

    Redis Cluster vs. Страж 12 мая 2014 г

    Следующий список содержит ответы на часто задаваемые вопросы о кэше Azure для кластеризации Redis.

    Настройте кластеризацию Redis для кеша Azure Premium для экземпляра Redis

    Azure Cache For Redis предлагает Redis Cluster, как реализовано в Redis. С Redis Cluster вы получаете следующие преимущества:

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

    Кластеризация не увеличивает количество соединений, доступных для кластерного кэша. Для получения дополнительной информации о размере, пропускной способности и пропускной способности с премиальными кешами см. Выбор правильного уровня

    В Azure Cluster предлагается в качестве первичной/реплики модели, где каждый осколок имеет первичную/репликную пару с репликацией, где репликация управляется Azure Cache для сервиса Redis.

    Кэш Azure для Redis теперь поддерживает до 30 осколков (предварительный просмотр)

    Кэш Azure для Redis теперь поддерживает до 30 осколков для кластерных кешей. Кластерные кэши, настроенные с двумя репликами, могут поддерживать до 20 осколков, а кластерные кэши, настроенные с тремя репликами, могут поддерживать до 15 осколков.

    Ограничения

    • Ограничение Shard для кэшей с Redis версии 4 составляет 10.
    • Ограничение Shard для кэши, затронутых пенсией облачных сервисов, составляет 10.
    • Техническое обслуживание займет больше времени, так как каждый узел потребуется примерно 20 минут, чтобы обновить. Другие операции по техническому обслуживанию будут заблокированы, пока ваш кэш находится под техническим обслуживанием.

    Настройка кластеризации

    Кластеризация включена Новый кэш Azure для Redis слева во время создания кеша.

    1. Чтобы создать кэш премиум -класса, войдите на портал Azure и выберите Создать ресурс. Помимо создания кэшей на портале Azure, вы также можете создать их, используя шаблоны управления ресурсами, PowerShell или Azure CLI. Для получения дополнительной информации о создании Azure Cache для Redis см. Создать ресурс
    2. На Новый Страница, выберите Базы данных а затем выберите Azure Cache для Redis. Выберите Azure Cache для Redis
    3. На Новый Redis Cache Страница, настройте настройки вашего нового премиального кеша.
      Параметр Предлагаемое значение Описание
      DNS имя Введите глобально уникальное имя. Имя кэша должно быть строкой от 1 до 63 символов. Строка может содержать только цифры, буквы или дефисы. Имя должно запустить и заканчиваться номером или буквой, и не может содержать последовательных дефисов. Экземпляр вашего кеша Имя хоста будет .Редис.кеш.окна.сеть.
      Подписка Выпадает и выберите подписку. Подписка, при которой для создания этого нового кеша Azure для экземпляра Redis.
      Ресурсная группа Раскрытие и выберите группу ресурсов или выберите Создавать новое и введите новое имя группы ресурсов. Имя для группы ресурсов для создания вашего кеша и других ресурсов. Поместив все ресурсы вашего приложения в одну группу ресурсов, вы можете легко управлять или удалить их вместе.
      Расположение Выпадает и выберите местоположение. Выберите регион рядом с другими службами, которые будут использовать ваш кэш.
      Тип кеша Раскрытие и выберите Premium Cache для настройки функций премиум-класса. Для получения подробной информации см. Кэш Azure для Redis Prigion. Уровень ценообразования определяет размер, производительность и функции, доступные для кэша. Для получения дополнительной информации см. Azure Cache для Redis Обзор.
    4. Выберите Сеть вкладка или выберите Сеть кнопка внизу страницы.
    5. в Сеть Вкладка, выберите метод подключения. Для экземпляров премиального кеша вы можете подключиться либо публично, через общедоступные IP -адреса или конечные точки сервиса, либо в частном порядке, используя частную конечную точку.
    6. Выберите Далее: Advanced вкладка или выберите Далее: Advanced кнопка внизу страницы.
    7. в Передовой Вкладка для экземпляра кэша премиум-класса настройте настройки для порта, кластеризации и устойчивости данных без TLS. Чтобы включить кластеризацию, выберите Давать возможность. Кластеризация переключенияУ вас может быть до 10 осколков в кластере. После выбора Давать возможность, Сдвиньте ползунок или введите число от 1 до 10 для Считается оскорблением и выберите ХОРОШО. Каждый осколок является первичной/реплик -кэшами, управляемой Azure, а общий размер кэша рассчитывается путем умножения количества осколков на размер кэша, выбранные в уровне ценообразования. Кластеризационная переключатель выбранКак только кэш будет создан, вы подключаетесь к нему и используете его так же, как не кластеризованный кэш. Redis распределяет данные по всему кешковому осколкам. Если диагностика включена, метрики фиксируются отдельно для каждого осколка и могут быть просмотрены в кэше Azure для Redis слева.
    8. Выберите Далее: теги вкладка или выберите Далее: теги кнопка внизу страницы.
    9. Необязательно, в Теги Вкладка, введите имя и значение, если вы хотите классифицировать ресурс.
    10. Выбирать Обзор + Create. Вы попали на вкладку Review + Create, где Azure проверяет вашу конфигурацию.
    11. После того, как появится передача зеленой проверки, выберите Создавать.

    Для создания кэша требуется некоторое время. Вы можете отслеживать прогресс на кеш Azure для Redis Обзор страница. Когда Положение дел показывает как Бег, Кэш готов к использованию.

    В вашем клиентском приложении требуются некоторые незначительные различия. Для получения дополнительной информации см. Мне нужно внести какие -либо изменения в приложении моего клиента для использования кластеризации?

    Для примера кода по работе с кластеризацией со StackexChange.Клиент Redis, см. Кластеризацию.CS часть образца Hello World.

    Измените размер кластера на работающем премиальном кеше

    Чтобы изменить размер кластера на кэше премиум -класса, который вы создали ранее, и уже работает с включенной кластеризацией, выберите Размер кластера из меню ресурсов.

    Скриншот диспетчера ресурсов с выбранным размером кластера

    Чтобы изменить размер кластера, используйте слайдер или введите число от 1 до 10 в Считается оскорблением текстовое окно. Затем выберите ХОРОШО сохранить.

    Увеличение размера кластера увеличивает максимальную пропускную способность и размер кэша. Увеличение размера кластера не увеличивает макс. соединения, доступные для клиентов.

    Масштабирование кластера запускает команду Migrate, которая является дорогой командой, поэтому для минимального воздействия рассмотрите возможность выполнения этой операции в непиковые часы. Во время процесса миграции вы увидите всплеск загрузки сервера. Масштабирование кластера – это длительный процесс, и количество времени, которое требуется, зависит от количества ключей и размера значений, связанных с этими клавишами.

    Clustering FAQ

    Следующий список содержит ответы на часто задаваемые вопросы о кэше Azure для кластеризации Redis.

    • Нужно ли внести какие -либо изменения в мое клиентское приложение для использования кластеризации?
    • Как клавиши распределяются в кластере?
    • Какой самый большой размер кэша я могу создать?
    • Все ли клиенты Redis поддерживают кластеризацию?
    • Как мне подключиться к своему кэше при включении кластеризации?
    • Могу ли я напрямую подключиться к отдельным осколкам моего кеша?
    • Могу ли я настроить кластеризацию для ранее созданного кэша?
    • Могу ли я настроить кластеризацию для базового или стандартного кеша?
    • Могу ли я использовать кластеризацию с Redis ASP.Чистое состояние сеанса и поставщики кэширования вывода?
    • Я получаю исключения для движения при использовании Stackexchange.Redis и кластеризация, что мне делать?
    • [Скалы с использованием помощи кластеризации для увеличения количества поддерживаемых клиентских подключений?] (#Делает масштабирование с использованием помощи кластеризации для увеличения количества поддерживаемых клиентских соединений?)

    Нужно ли внести какие -либо изменения в мое клиентское приложение для использования кластеризации?

    • Когда кластеризация включена, доступна только база данных 0. Если ваше клиентское приложение использует несколько баз данных, и оно пытается прочитать или записать в базу данных, отличную от 0, добавлено следующее исключение: Неправомерное исключение: Stackexchange.Редис.RedisconnectionException: Protocolfialure on get —> stackexchange.Редис.Rediscommandexception: несколько баз данных не поддерживаются на этом сервере; Невозможно переключиться на базу данных: 6 Для получения дополнительной информации см. Спецификация Redis Cluster – реализовано подмножество.
    • Если вы используете StackexChange.Redis, вы должны использовать 1.0.481 или позже. Вы подключаетесь к кэшу, используя те же конечные точки, порты и клавиши, которые вы используете при подключении к кэшу, где кластеризация отключена. Единственное отличие состоит в том, что все чтения и записи должны быть сделаны для базы данных 0. У других клиентов могут быть разные требования. Смотрите Do All Redis клиенты поддерживают кластеризацию?
    • Если в вашем приложении используются несколько операций с ключами, введенными в одну команду, все клавиши должны быть расположены в одном и том же осколках. Чтобы найти ключи в том же осколках, посмотрите, как клавиши распределены в кластере?
    • Если вы используете Redis asp.Чистый сессия государственного поставщика, вы должны использовать 2.0.1 или выше. Смотрите ли я использовать кластеризацию с Redis ASP.Чистое состояние сеанса и поставщики кэширования вывода?

    Как клавиши распределяются в кластере?

    Согласно документации модели распределения Redis Keys: ключевое пространство разделено на 16 384 слота. Каждый ключ хэшируется и назначен одним из этих слотов, которые распределены по узлам кластера. Вы можете настроить, какая часть ключа имеет хеширование, чтобы убедиться, что в одном и том же осколках расположены несколько ключей, используя хэш -теги.

    • Ключи с хэш -тегом – если какая -либо часть ключа заключена в < and >, Только эта часть ключа имеет хеширование для целей определения хэш -слота ключа. Например, следующие три ключа будут расположены в одном и том же осколках: 1, 2 и 3, так как только ключевая часть имени – хэшировка. Для полного списка спецификаций хеш -тегов ключей см. Теги хэш -клавиш.
    • Ключи без хэш -тега – все ключевое имя используется для хэширования, что приводит к статистически ровному распределению по осколкам кеша.

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

    Для образца кода о работе с кластеризацией и поиском клавиш в том же осколках со Stackexchange.Клиент Redis, см. Кластеризацию.CS часть образца Hello World.

    Какой самый большой размер кэша я могу создать?

    Самый большой размер кэша, который вы можете иметь, – 1.2 ТБ. Этот результат – кластерный кеш P5 с 10 осколками. Для получения дополнительной информации см. Кэш Azure для Redis.

    Все ли клиенты Redis поддерживают кластеризацию?

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

    Протокол кластеризации REDIS требует, чтобы каждый клиент подключился к каждому осколкам непосредственно в режиме кластеризации, а также определяет новые ответы ошибок, такие как &laquo;перемещенные&raquo; CASSLOTS ‘. Когда вы пытаетесь использовать клиентскую библиотеку, которая не поддерживает кластеризацию, с кешем режима кластера, результат может быть много исключений перемещения или просто нарушить свое приложение, если вы выполняете перекрестные мощные запросы.

    Если вы используете StackexChange.Redis в качестве вашего клиента, убедитесь, что вы используете последнюю версию Stackexchange.Redis 1.0.481 или позже для кластеризации для правильной работы. Для получения дополнительной информации о любых вопросах, связанных с исключениями перемещения, см. За исключением перемещения.

    Как мне подключиться к своему кэше при включении кластеризации?

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

    Могу ли я напрямую подключиться к отдельным осколкам моего кеша?

    Протокол кластеризации требует, чтобы клиент установил правильные соединения с осколками, поэтому клиент должен установить для вас подключения к общению. С учетом сказанного, каждый осколок состоит из пары кеша первичной/реплик, известной как экземпляр кэша. Вы можете подключиться к этим экземплярам кеша, используя утилиту Redis-Cli в нестабильной ветви репозитория Redis в GitHub. Эта версия реализует базовую поддержку при запуске с переключателя -c. Для получения дополнительной информации см. Учебник Redis Cluster.

    Для не TLS используйте следующие команды.

    Redis-Cli.exe –h> -p 13000 (к подключению к экземпляру 0) Redis -cli.exe –h> -p 13001 (к подключению к экземпляру 1) Redis -cli.exe –h> -p 13002 (чтобы подключиться к экземпляру 2) . Redis-Cli.exe -h> -p 1300n (чтобы подключиться к экземпляру n) 

    Для TLS замените 1300N на 1500N .

    Могу ли я настроить кластеризацию для ранее созданного кэша?

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

    Вы не можете отменить включение кластеризации. И кеш с включенным кластеризацией и только один осколок ведет себя иначе чем кеш того же размера с нет кластеризация.

    Могу ли я настроить кластеризацию для базового или стандартного кеша?

    Кластеризация доступна только для премиальных кэшей.

    Могу ли я использовать кластеризацию с Redis ASP.Чистое состояние сеанса и поставщики кэширования вывода?

    • Redis выходной кеш – Не требуется изменений.
    • Redis Session State Provider – Чтобы использовать кластеризацию, вы должны использовать SurdisessessionStateProvider 2.0.1 или выше или исключение, что является нарушением изменений. Для получения дополнительной информации см. V2.0.0 Детали нарушения изменений.

    Я получаю исключения для движения при использовании Stackexchange.Redis и кластеризация, что мне делать?

    Если вы используете StackexChange.Redis и получите исключения для перемещения при использовании кластеризации, убедитесь, что вы используете Stackexchange.Redis 1.1.603 или позже. Для инструкций по настройке вашего .Чистые приложения для использования stackexchange.Redis, см. Настройка клиентов кэша.

    Смотрите ли масштабирование с использованием кластеризации помогает увеличить количество поддерживаемых клиентских подключений?

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

    Следующие шаги

    Узнайте больше о Azure Cache для функций Redis.

    Redis Cluster vs. Страж 12 мая 2014 года

    Sentinel и Cluster предназначены для различных целей, это руководство объяснит различия и когда использовать каждый.

    Кто они такие?

    Redis имеет две основные категории запуска нескольких экземпляров. Есть &ldquo;стандартная репликация&rdquo; И скоро появится &ldquo;Redis Cluster&rdquo;. Для управления репликацией вы используете Sentinel. Кластер в основном управляет себя, но вы можете объединить два для расширенной, если сложной, HA +репликация.

    Это руководство проведет вас через каждое, чтобы лучше понять различия и варианты использования для каждого. Мы начнем с Redis Cluster. Обратите внимание, что в то время написано это руководство, кластер еще не в релизе производства, а подробности могут измениться.

    Redis Cluster

    Redis Cluster – это в первую очередь средством автоматического шарсинга в разных экземплярах. Это должно быть в Redis 3.0.

    Что оно делает

    Cluster IS Redis, который настроен на распространение данных по данному количеству экземпляров Redis. Чтобы управлять тем, какие данные есть, у кластера есть спецификация протокола, которая позволяет клиентам общаться с любым мастером в кластере. Если работа, на котором работает локально, данные возвращаются как обычно.

    Однако, если данные хранятся в другом узле, возвращается перемещенный ответ, сообщающий клиенту, с каким мастером поговорить вместо этого. Таким образом, этот механизм требует поддержки на стороне клиента для кластера

    Обратите внимание, что кластер не предоставляет HA или репликацию напрямую.

    Что для кластера для

    Внешние варианты использования для кластера развиваются вокруг любого распространения нагрузки (в частности, записи) и превзойти возможности памяти с одним инстанцией. Если у вас есть 2T данных, не хотите писать код шардинга в коде доступа, но у вас есть библиотека, которая поддерживает кластер, тогда вы, вероятно, хотите Redis Cluster. Если у вас высокий объем записи до широкого спектра ключей, а ваша клиентская библиотека поддерживает кластер, кластер также подойдет.

    Redis Sentinel

    Redis поддерживает несколько рабов, реплицирующих данные из главного узла. Это обеспечивает резервный узел, на котором есть ваши данные, готовые к обслуживанию данных. Однако для обеспечения автоматического переключения переключения вам нужен какой -то инструмент. Для Redis этот инструмент называется Sentinel. В этом документе мы будем использовать этот термин &ldquo;капсул&rdquo; Описать мастер Redis с одним или несколькими рабами; Это избегает путаницы с термином &ldquo;кластер&rdquo;.

    Что оно делает

    Sentinel настроен на то, чтобы указать на мастер, который вам нужен управляемый. Затем он запросит мастер для всех подключенных рабов. Как только он определит конфигурацию POD, он продолжит контролировать каждый узел, и после подтверждения вниз мастер она будет способствовать подчинению и реконфигурирует каждого раба, чтобы указать на новый мастер.

    Чтобы использовать это для прозрачного управления клиентскими соединениями, вам нужно будет либо поместить мастер -узел за виртуальным IP или балансировщиком нагрузки, который знает, либо может быть динамически настроен, какой узел является мастером.

    Другой вариант – использовать клиента, который реализовал поддержку Sentinel.

    Sentinel использует механизм голосования+кворум, поэтому вам нужно как минимум три узла Sentinel, работающие вместе. Я называю это оздоровием стража. Каждому стручке дается имя в созвездии. Это обеспечивает дополнительную возможность при использовании клиентского кода, способного способным к Sentinel. В этом сценарии вы можете использовать Sentinel для обнаружения услуг.

    Для чего

    Стандартный вариант использования для Sentinel-один мастер с 1-2 рабами, готовыми к продвижению. Затем Sentinel используется для постоянного поддержания трафика данных одного узла, в пределах проверки Aliveny Testing.

    В качестве альтернативы, можно развернуть один стражи и иметь каждый отдельный мастер или каждый стручок подключиться к нему, чтобы обеспечить обнаружение услуг. В этом сценарии, возможно, у вас есть &ldquo;Веб -кеш&rdquo; экземпляр и а &ldquo;метрики&rdquo; пример. С соответствующей поддержкой на стороне клиента ваши приложения подключатся к экземпляру Sentinel и получили информацию о подключении для любого &ldquo;Веб -кеш&rdquo; или &ldquo;метрики&rdquo; Без необходимости уникальной информации об соединении для каждого клиента.

    Что использовать

    Если требования к памяти превышают системную память или вам необходимо распределить записи по нескольким узлам для поддержания уровней производительности, Redis Cluster – это то, где вы должны искать.

    Если вы ищете высокую доступность, вы&rsquo;LL Хочу больше взглянуть на развертывание Sentinel.

      Дополнительное чтение

    • Используя Sentinel

    Билл Андерсон [о]

    Профиль для Билла Андерсона в Stack Overflow, Q & A для профессиональных и энтузиастов программистов

    Билл Андерсон – безумный ученый, работающий над странными, но классными и мощными способами использования Redis. В свободное время он любит играть в Minecraft со своей женой и двумя дочерями.

    Установка кластера Redis (режим кластера включен) с автоматическим отказом

    Redis-это дата данных с открытым исходным кодом, используемое в качестве базы данных или кэша. Он имеет встроенную репликацию и обеспечивает высокую доступность через Redis Sentinel и автоматическое разделение с Redis Cluster. В этом блоге мы посмотрим, что такое и как установить кластер Redis.

    Что такое Redis Cluster?

    Redis Cluster-это встроенная функция Redis, которая предлагает автоматическое шарнинг, репликацию и высокую доступность, которая ранее была реализована с использованием Sentinels. Он имеет возможность автоматически разделить ваш набор данных между несколькими узлами и продолжать операции, когда подмножество узлов испытывает сбои или не может общаться с остальной частью кластера.

    Цели кластера Redis:

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

    Теперь, когда мы знаем, что это такое, пусть&rsquo;S Посмотрите, как его установить.

    Как установить Redis Cluster

    Согласно официальной документации, минимальный кластер, который работает так же, как и ожидалось, требуется, чтобы содержать как минимум три главных узла, но на самом деле рекомендация состоит&rsquo;Сделай это.

    Для этого примера мы установим Redis Cluster на CentOS 8, используя следующую топологию:

    Мастер 1: 10.10.10.121 Мастер 2: 10.10.10.122 Мастер 3: 10.10.10.123 раб 1: 10.10.10.124 раб 2: 10.10.10.125 раб 3: 10.10.10.126

    Следующие команды должны выполняться во всех узлах, мастере и рабстве.

    По умолчанию, во время создания этого сообщения в блоге доступная версия Redis на Centos 8 – 5.0.3, так пусть&rsquo;S Используйте репозиторий REMI, чтобы иметь текущую стабильную версию 6.2:

    $ dnf install https: // rpms.Emerirepo.Net/Enterprise/REMI-RELEASE-8.RPM -Y $ DNF Модуль Установка Redis: Remi -6.2 -y

    Включить услугу Redis:

    $ systemCtl включить Redis.услуга

    Для настройки вашего кластера Redis вам необходимо отредактировать файл конфигурации Redis /etc /redis.Conf и измените следующие параметры:

    $ vi /etc /redis.Conf Bind 10.10.10.121 #REPLECE Этот IP-адрес на локальный IP-адрес на каждом узле защищенного режима NO PORT 7000 Cluster-с поддержкой DES-Cluster-Config-файл.Conficl Cluster-Timeout 15000 Appendonly да

    Эти параметры:

    • Bind: по умолчанию, если это не указано, Redis прослушивает соединения из всех доступных сетевых интерфейсов на сервере. Можно прослушать только один или несколько выбранных интерфейсов.
    • Защищенный режим: защищенный режим-это уровень защиты, чтобы избежать того, что экземпляры Redis, оставленные в Интернете, доступны и эксплуатируются. По умолчанию защищенный режим включена.
    • Порт: принять подключения на указанном порту, по умолчанию 6379. Если порт 0 указан, Redis не будет прослушиваться в розетке TCP.
    • Cluster-с поддержкой: включает/отключает поддержку кластера Redis на конкретном узле Redis. Если он отключен, экземпляр начинается как отдельный экземпляр как обычно.
    • Cluster-Config-File: файл, в котором узел кластера Redis автоматически сохраняет конфигурацию кластера каждый раз, когда происходит изменение, чтобы иметь возможность перечитать его при запуске.
    • Кластер-узлы Timeout: максимальное количество времени (в миллисекундах) узел кластера Redis может быть недоступным, если он не рассматривается как провал. Если мастер -узел не может быть достижимы в течение более указанного времени, он не будет провал по его рабам.
    • Appendonly: файл только добавления – это альтернативный режим настойчивости, который обеспечивает гораздо лучшую долговечность. Для экземпляров с использованием политики FSYNC Data по умолчанию Redis может потерять только одну секунду записей в сбое сервера, такую ​​как отключение электроэнергии, или одна запись, если что -то не так с самим процессом Redis, но операционная система все еще работает правильно.

    Каждый узел кластера Redis требует открытых двух соединений TCP. Нормальный порт Redis TCP, используемый для обслуживания клиентов по умолчанию 6379, и порт, полученный путем добавления 10000 в порт данных, поэтому по умолчанию 16379. Этот второй порт назначен для шины кластера, которая используется узлами для обнаружения сбоев, обновления конфигурации, авторизации и много.

    Теперь вы можете начать сервис Redis:

    $ systemCtl start redis.услуга

    В файле журнала Redis по умолчанию/var/log/redis/redis.журнал, вы увидите это:

    76: м 02 июля 2021 18:06:17.658 * Готовы принять соединения

    Теперь все готово, вам нужно создать кластер, используя инструмент Redis-Cli. Для этого вы должны запустить следующую команду только в одном узле:

    $ redis-cli-кластер создать 10.10.10.121: 7000 10.10.10.122: 7000 10.10.10.123: 7000 10.10.10.124: 7000 10.10.10.125: 7000 10.10.10.126: 7000-кластер-репликас 1

    В этой команде вам нужно добавить IP -адрес и порт Redis для каждого узла. Три первых узла будут главными узлами, а остальные – рабские. Cluster-Replicas 1 означает один рабский узел для каждого мастера. Вывод этой команды будет выглядеть примерно так:

    >>> Выполнение ассигнований с хэш -слотами на 6 узлах. Мастер [0] -> Слоты 0 - 5460 Мастер [1] -> Слоты 5461 - 10922 Мастер [2] -> Слоты 10923 - 16383 Добавление реплики 10.10.10.125: 7000 до 10.10.10.121: 7000 Добавление реплики 10.10.10.126: от 7000 до 10.10.10.122: 7000 Добавление реплики 10.10.10.124: 7000 до 10.10.10.123: 7000 M: 4394D8EB03DE1F524B56CB385F0EB9052CE65283 10.10.10.121: 7000 слотов: [0-5460] (5461 слоты) Мастер M: 5CC0F693985913C553C6901E102EA3CB8D6678BD 10.10.10.122: 7000 слотов: [5461-10922] (5462 слота) Мастер M: 22DE56650B3714C1C42FC0D120F80C66C24D8795 10.10.10.123: 7000 слотов: [10923-16383] (5461 слоты) Мастер S: 8675CD30FDD4EFA088634E50FBD5C0675238A35E 10.10.10.124: 7000 Replicates 22DE56650B3714C1C42FC0D120F80C66C24D8795 S: AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125: 7000 Replicates 4394D8EB03DE1F524B56CB385F0EB9052CE65283 S: 184ADA329264E994781412F3986C425A248F386E 10.10.10.126: 7000 Replicates 5CC0F693985913C553C6901E102EA3CB8D6678BD Могу ли я установить вышеуказанную конфигурацию? (введите &laquo;да&raquo;, чтобы принять):

    После принятия конфигурации будет создан кластер:

    >>> Обновлена ​​конфигурация узлов >>> Назначьте другую эпоху конфигурации каждому узлу >>> Отправка кластера Совместите сообщения, чтобы присоединиться к кластеру, ожидающему присоединения кластера . >>> выполнение проверки кластера (с помощью узла 10.10.10.121: 7000) M: 4394D8EB03DE1F524B56CB385F0EB9052CE65283 10.10.10.121: 7000 слотов: [0-5460] (5461 слота) Мастер 1 Дополнительная копия (S) S: 184ADA329264E994781412F3986C425A248F386E 10.10.10.126: 7000 Слотов: (0 слотов) Рабоечные повторности 5CC0F693985913C553C6901E102EA3CB8D6678BD M: 5CC0F693985913C553C6901E102EA3CB8D66785913C53C6901E102EA3CB8D66785913C6901E102EA3CB8D66785913C6901E102EA3CB8D6785913C6901E10.10.10.122: 7000 слотов: [5461-10922] (5462 слотов) Мастер 1 Дополнительная копия (S) M: 22DE56650B3714C1C42FC0D120F80C66C24D8795 10.10.10.123: 7000 слотов: [10923-16383] (5461 слоты) Мастер 1 Дополнительная копия (S) S: AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125: 7000 Слотов: (0 слотов) Рабоечные повторности 4394D8EB03DE1F524B56CB385F0EB9052CE65283 S: 8675CD30FDD4EFA088634E50FD5C0675238A35E 10.10.10.124: 7000 слотов: (0 слотов) Рабоечные повторно. >>> Проверьте открытые слоты. >>> Проверьте покрытие слотов. [ОК] Все слоты 16384.

    Если вы посмотрите на файл главного журнала, вы увидите:

    3543: м 02 июля 2021 г. 19:40:23.250 # configePoch Установите 1 через кластер Set-Config-EPOCH 3543: M 02 июля 2021 19:40:23.258 # IP -адрес для этого узла обновлен до 10.10.10.121 3543: м 02 июля 2021 г. 19:40:25.281 * Реплика 10.10.10.125: 7000 запрашивает синхронизацию 3543: м 02 июля 2021 19:40:25.281 * Частичная ресинхронизация не принимается: несоответствие идентификации репликации (реплика спросила &laquo;1F42A85E22D8A198178444AEAC14FBB8201A6FC88&raquo;, My REPLICATION IDS '9F8DB08A36207C17800F75487B193A624F17F17F0917F17F0917F09117F09117F17F09117F17F09117F0917F17F17F17800F75487B193A624F17F17F17F17800F75487B193A624F17F17F17F17800F75487B193A624F17 00000000000000000000000000 ') 3543: м 02 июля 2021 19:40:25.281 * Создано репликация, мои новые идентификаторы репликации - 21ABFCA3B9405356569B2684C6D68C0D2EC19B3B 'и' 000000000000000000000000000000000000 '3543: M 02 2021 19:40:25.281 * Начало Bgsave для синхронизации с целью: диск 3543: M 02 июля 2021 19:40:25.284 * Сохранение фона началось с PID 3289 3289: C 02 июля 2021 19:40:25.312 * DB Сохраняется на диске 3289: C 02 июля 2021 19:40:25.313 * RDB: 0 МБ памяти, используемой копией на записи 3543: м 02 июля 2021 19:40:25.369 * Сохранение фона завершено с успехом 3543: M 02 июля 2021 19:40:25.369 * Синхронизация с репликой 10.10.10.125: 7000 успешно 3543: м 02 июля 2021 г. 19:40:28.180 # Cluster State изменилось: ОК

    И реплика&rsquo;S файл журнала:

    11531: м 02 июля 2021 г. 19:40:23.253 # configePoch Установите 4 через кластер Set-Config-EPOCH 11531: M 02 июля 2021 19:40:23.357 # IP -адрес для этого узла обновлен до 10.10.10.124 11531: с 02 июля 2021 г. 19:40:25.277 * Прежде чем превратиться в реплику, используя мои собственные основные параметры для синтеза кэшированного мастера: я могу синхронизировать с новым мастером с лишь частичной передачей. 11531: с 02 июля 2021 г. 19:40:25.277 * Подключение к Мастеру 10.10.10.123: 7000 11531: с 02 июля 2021 г. 19:40:25.277 * Синхронизация Master Replica началась 11531: S 02 июля 2021 19:40:25.277 # Cluster State изменилось: OK 11531: S 02 июля 2021 г. 19:40:25.277 * Не блокировка подключения для синхронизации зажигала событие. 11531: с 02 июля 2021 г. 19:40:25.278 * Мастер ответил на пинг, репликация может продолжаться. 11531: с 02 июля 2021 г. 19:40:25.278 * Пробуйте частичную ресинхронизацию (запрос 7d8da986c7e699fe33002d10415f98e91203de01: 1). 11531: с 02 июля 2021 г. 19:40:25.279 * Полное повторное ресинхронизация от Мастера: 99A8DEFC35B459B7B73277933AA526D3F72AE76E: 0 11531: S 02 июля 2021 19:40:25.279 * Отказ от ранее кэшированного мастерского государства. 11531: с 02 июля 2021 г. 19:40:25.299 * Синхронизация главной реплики: получение 175 байтов от Мастера до диска 11531: с 02 июля 2021 19:40:25.299 * Синхронизация главной реплики: промывание старых данных 11531: S 02 июля 2021 19:40:25.300 * Синхронизация главной реплики: загрузка DB в память 11531: S 02 июля 2021 19:40:25.306 * Загрузка RDB, произведенная версией 6.2.4 11531: с 02 июля 2021 г. 19:40:25.306 * RDB Возраст 0 секунд 11531: S 02 июля 2021 19:40:25.306 * Использование памяти RDB при создании 2.60 МБ 11531: с 02 июля 2021 г. 19:40:25.306 * Синхронизация главной реплики: закончено с успехом 11531: S 02 июля 2021 19:40:25.308 * Справочный фон. ПРИМЕНЕНИЕ ПЕРЕДАЧА ФАЙЛА НАЧИНАЕТ ПИД 2487 11531: S 02 июля 2021 г. 19:40:25.342 * aof переписывает ребенка. 2487: C 02 июля 2021 г. 19:40:25.342 * Родитель согласился перестать отправлять различия. Дополнение AOF. 2487: C 02 июля 2021 г. 19:40:25.342 * Согласно 0.00 МБ дифференциации AOF, полученного от родителя. 2487: C 02 июля 2021 г. 19:40:25.343 * SYNC Добавить только переписать файл.343 * aof rewrite: 0 МБ памяти, используемой Copy-on Write 11531: S 02 июля 2021 19:40:25.411 * ПРИМЕНЕНИЕ AOF Перезапись с успехом 11531: S 02 июля 2021 19:40:25.411 * Остаточный родительский дифференциал успешно промылся на переписанную AOF (0.00 МБ) 11531: с 02 июля 2021 г. 19:40:25.411 * Справочный фон aof rewrite успешно закончен

    Мониторинг узлов Cluster Redis

    Чтобы узнать статус каждого узла Redis, вы можете использовать следующую команду:

    $ redis -cli -h 10.10.10.121 -P 7000 узлов кластера 184DA329264E994781412F3986C425A248F386E 10.10.10.126: [Электронная почта защищена] Slave 5CC0F693985913C553C6901E102EA3CB8D6678BD 0 1625255155519 2 Подключен 5CC0F693985913C553C6901E102EA3CB8D66785913C553C6901E102EA3CB8D6678BD 10.10.10.122: [Электронная почта защищена] Мастер - 0 1625255153513 2 Подключен 5461-10922 22DE56650B3714C1C42FC0D120F80C66C24D8795 10.10.10.123: [Электронная почта защищена] Мастер - 0 1625255151000 3 подключен 10923-16383 AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125: [Электронная почта защищен].10.10.124: [Электронная почта защищен].10.10.121: [Электронная почта защищена] Я, Мастер - 0 1625255152000 1 подключен 0-5460

    Вы также можете отфильтровать выход, используя команду Grep Linux, чтобы проверить только главные узлы:

    $ redis -cli -h 10.10.10.121 -P 7000 узлов кластера | Grep Master 5CC0F693985913C553C6901E102EA3CB8D6678BD 10.10.10.122: [Электронная почта защищена] Мастер - 0 1625255389768 2 подключен 5461-10922 22DE56650B3714C1C42FC0D120F80C66C24D8795 10.10.10.123: [Электронная почта защищена] Мастер - 0 1625255387000 3 подключен 10923-16383 4394D8EB03DE1F524B56CB385F0EB9052CE65283 10.10.10.121: [Электронная почта защищена] Я, Мастер - 0 1625255387000 1 подключен 0-5460

    Или даже рабские узлы:

    $ redis -cli -h 10.10.10.121 -P 7000 узлов кластера | Grep Slave 184ada329264E994781412F3986C425A248F386E 10.10.10.126: [Электронная почта защищен].10.10.125: [Электронная почта защищена].10.10.124: [Электронная почта защищена]

    Redis Cluster Auto Offoplover

    Позволять&rsquo;S тестируйте функцию автоматического аварийного переключения в Redis Cluster. Для этого мы собираемся остановить сервис Redis в одном мастер -узле и посмотрим, что произойдет.

    На Мастере 2 – 10.10.10.122:

    $ SystemCtl Stop Redis $ SystemCtl Status Redis | grep Active Active: неактивный (мертвый) с пятницы 2021-07-02 19:53:41 UTC; 1 ч 4 минуты назад

    Теперь, пусть&rsquo;S Проверьте выход команды, которую мы использовали в предыдущем разделе для мониторинга узлов Redis:

    $ redis -cli -h 10.10.10.121 -P 7000 узлов кластера 184DA329264E994781412F3986C425A248F386E 10.10.10.126: [Электронная почта защищена] Мастер - 0 1625255654350 7 Подключен 5461-10922 5CC0F693985913C553C6901E102EA3CB8D6678BD 10.10.10.122: [Электронная почта защищена] Мастер, сбой - 1625255622147 1625255621143 2 Отключен 22DE56650B3714C1C42FC0D120F80C66C24D8795 10.10.10.123: [Электронная почта защищена] Мастер - 0 1625255654000 3 подключен 10923-16383 AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125: [Электронная почта защищена].10.10.124: [Электронная почта защищен].10.10.121: [Электронная почта защищена] Я, мастер - 0 1625255653000 1 подключен 0-5460

    Как видите, один из рабовлажных узлов был способен мастеру, в данном случае, раб 3 – 10.10.10.126, поэтому автоматическое переключение работало, как и ожидалось.

    Заключение

    Redis-хороший вариант на случай, если вы хотите использовать хранилище данных в памяти. Как вы можете видеть в этом посте в блоге, инсталляция не является ракетостроением, и использование Cluster Cluster объясняется в его официальной документации. Этот блог просто охватывает основные шаги установки и тестирования, но вы также можете улучшить это, например, добавив аутентификацию в конфигурации Redis или даже запустив контрольный показатель с помощью инструмента Redis-Benchmark для проверки производительности.

    сопутствующие товары

    Redis: репликация, часть 1 – обзор. Репликация против шардинга. Страж против кластера. Топология Redis.

    Кодепроект
    Первоначально планировалось написать один маленький пост с примером, как создать репликацию Redis, но, когда я читал все больше и больше деталей – я хотел описать об этом все больше и больше, поэтому в конечном итоге я разделил этот пост на две части.

    В этом – какой -то быстрый обзор, краткое объяснение различий в типах распределения данных Redis, примеры топологии.

    Короче говоря, но со ссылками на подробную документацию и другие полезные сообщения о других ресурсах.

    Во второй части – пара примеров того, как настроить простую репликацию и репликацию с Redis Sentinel.

    В третьей части-примеры библиотеки Redis-Py с репликацией Redis и Sentinel.

    Репликация Redis vs Sharding

    Redis поддерживает два типа обмена данными репликация (также известен как зеркалирование, дублирование данных), и Шарь (также известен как разделение, сегментация данных). В этом – Redis Cluster может использовать оба метода одновременно.

    Репликация

    Является ли данные об общих узлах REDIS в кластере, который позволяет делать запросы на один или несколько рабов.

    Используя этот подход – читать запросы будут быстрее.

    Шарь

    С сегментацией данных – все данные будут разделены на несколько частей, и это улучшит каждый узел&rsquo;S производительность, поскольку он будет хранить только какую -то часть данных и не будет обслуживать все запросы.

    Используя этот подход – писать запросы пойдут быстрее.

    Redis Sentinel vs Redis Cluster

    Redis Sentinel

    Был добавлен в Redis V.2.4 и в основном это служба мониторинга для мастеров и рабов.

    Кроме того, могут отправить уведомления, автоматически переключать роли мастеров и рабов, если мастер внизу и так далее.

    Может иметь смысл использования для голой репликации мастер-раба (см. Ниже) без полной кластеризации.

    Он работает в качестве выделенного демона, используя бинарную или Redis-Server в Страж режим.

    Будет выполнять реконфигурацию узлов, если мастер пошел вниз – выберет нового мастера из левых рабов.

    Требуется как минимум три экземпляра Sentinel, чтобы иметь кворум для новых магистерских выборов и решить, уходит ли один из узлов Redis

    Redis Cluster

    Был добавлен в Redis V.3.0 и представляет собой полное решение для кластеризации для сегментации, репликации и управления его узлами.

    Будет выполнять синхронизацию данных, репликацию, управление узлами.

    Использование Sentinel в корпусе Redis Cluster&rsquo;это имеет смысл, так как кластер будет делать все само по себе.

    Топология Redis

    Один экземпляр Redis

    Самый простой и классический случай.

    Просто в запуске и конфигурации.

    Ограничен хозяином&rsquo;S Ресурсы – его процессор и память.

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

    Репликация мастер-раба

    Один мастер, который имеет прикрепленные рабы.

    Данные будут обновлены на этом мастере, а затем мастер втянет эти изменения в свои реплики.

    Рабы могут поговорить только с мастером и могут&rsquo;T общайтесь с другими рабами, но все еще могут иметь своих рабов

    Рабы-это узлы только для чтения-изменения данных не могут быть выполнены, если это не было&rsquo;t настроили явно (см. Вторую часть этого поста).

    В случае какого -либо узла будет вниз – все данные по -прежнему будут доступны для клиентов, поскольку данные реплицируются по всем узлам.

    Простой в конфигурации, но писать Операции ограничены мастером&rsquo;S Ресурсы.

    В случае, если мастер пойдет вниз – вы&rsquo;LL придется вручную перенастроить рабов и сменить раба, чтобы освоить роли для одного на них.

    Кроме того, клиенты должны знать, что они должны использовать для операций записи.

    Redis Sentinel

    Уже описано выше, но еще несколько слов здесь.

    Подобно репликации Redis – Sentinel имеет один главный экземпляр, который имеет приоритет при принятии решения о Master Redis&rsquo;S выборы.

    я.эн. В случае одного мастера Redis и двух рабов и, если Sentinel Master работает над тем же хостом, где работает Redis Master, и этот хост будет вниз – Sentinel выберет Sentinel&rsquo;Новый мастер -экземпляр и эти два случая Sentinels должны решить, какой раб Redis должен стать новым мастером Redis.

    Во время этого – Сентинел&rsquo;S Master будет иметь больший вес на таких выборах.

    Имейте в виду, что не каждый клиент Redis, способный работать с Sentinel, все клиент можно найти здесь >>>.

    Redis Cluster

    И самое мощное решение – кластер Redis.

    Имеет несколько главных экземпляров, и каждый может иметь еще по одному – до 1000 – рабов.

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

    Должен иметь не менее 6 узлов Redis – 3 для хозяев и три для рабов.

    Может ли перенаправить запросы клиентов на необходимый мастер или рабский хост – но клиент должен иметь возможность работать с Redis Cluster.

    Ссылки по теме

    • Redis Community
    • Репликация Redis
    • Redis Cluster Tutorial
    • Спецификация кластера Redis
    • Вступление в Redis Cluster Sharding
    • Как настроить Redis Cluster из Source
    • Репликация Redis vs Sharding
    • Redis Cluster vs Redis Replication
    • Redis Sentinel & Redis Cluster – что?
    • Какое развертывание Redis вам нужно?