Поделиться через


Кэш Azure для Redis и надежность

Кэш Azure для Redis предоставляет хранилище данных в памяти на основе программного обеспечения Redis (удаленный сервер словаря). Это безопасный кэш данных и брокер обмена сообщениями, обеспечивающий высокую пропускную способность и низкой задержки доступ к данным для приложений.

Основные понятия и рекомендации, поддерживающие надежность, включают:

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

Рекомендации по проектированию

Соглашения об уровне обслуживания кэша Azure для Redis охватывают только кэши уровня "Стандартный" и "Премиум". Базовый уровень не охватывается.

Redis — это кэш в памяти для пар значений ключей и имеет высокий уровень доступности (HA), за исключением уровня "Базовый". Существует три уровня для кэша Azure для Redis:

  • Базовый:Не рекомендуется для производственных нагрузок. Базовый уровень идеально подходит для:

    • отдельный узел
    • Несколько размеров
    • Развитие
    • Тест
    • Некритичные рабочие нагрузки
  • Стандартный: реплицированный кэш в двухузловой первичной и вторичной конфигурации, управляемой корпорацией Майкрософт, с высоким уровнем обслуживания доступности.

  • Премиум: включает все стандартные функции и включает следующие другие функции:

    • Более быстрое оборудование и производительность по сравнению с уровнем "Базовый" или "Стандартный".
    • Более крупный размер кэша, до 120GB.
    • Сохранение данных, которое включает файл базы данных Redis (RDB) и файл только для добавления (AOF).
    • Поддержка виртуальной сети.
    • Кластеризация
    • Георепликация: вторичный кэш находится в другом регионе и реплицирует данные из основного источника для аварийного восстановления. Чтобы переключиться на резервный сервер, необходимо вручную отменить связь кэшей, после чего резервный сервер становится доступным для записи. Приложение, записывающее в Redis, необходимо обновить с обновленной строкой подключения кэш-памяти вторичного сервера.
    • Зоны доступности: развертывание кэша и реплик в зонах доступности.

      Примечание.

      По умолчанию каждое развертывание будет иметь одну реплику на сегмент. Сохраняемость, кластеризация и георепликация на данный момент отключены при развертывании с несколькими репликами. Узлы будут равномерно распределены по всем зонам. У вас количество реплик должно совпадать с количеством зон >=.

    • Импорт и экспорт.

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

Контрольный перечень

Вы настроили кэш Azure для Redis с учетом устойчивости?


  • Планирование обновлений.
  • Мониторинг кэша и настройка оповещений.
  • Разверните кэш в виртуальной сети.
  • Оцените стратегию секционирования в кэше Redis.
  • Настройте сохраняемость данных , чтобы сохранить копию кэша в службе хранилища Azure или использовать георепликацию в зависимости от бизнес-требований.
  • Реализуйте политики повторных попыток в контексте кэша Redis Azure.
  • Используйте одну статическую или одноэлементную реализацию мультиплексера подключения к Redis и следуйте рекомендациям.
  • Узнайте , как администрировать кэш Azure для Redis.

Рекомендации по настройке

Ознакомьтесь со следующей таблицей рекомендаций по оптимизации конфигурации кэша Azure для Redis для обеспечения надежности службы:

Рекомендация Описание
Планирование обновлений. Запланируйте дни и время применения обновлений Сервера Redis к кэшу, который не включает обновления Azure или обновления операционной системы виртуальной машины.
Мониторинг кэша и настройка оповещений. Настройте оповещения для исключений, высокой загрузки ЦП, высокой загрузки памяти, загрузки сервера и вытеснения ключей для получения аналитических сведений о том, когда следует масштабировать кэш. Если кэшу необходимо масштабироваться, понимание того, когда следует масштабировать, важно, так как он увеличит ЦП во время события масштабирования для переноса данных.
Разверните кэш в виртуальной сети. Дает клиенту больше контроля над трафиком, который может подключаться к кэшу. Убедитесь, что подсеть имеет достаточное адресное пространство для развертывания узлов кэша и сегментов (кластера).
Оцените стратегию секционирования в кэше Redis. Секционирование хранилища данных Redis включает разделение данных между экземплярами сервера Redis. Каждый экземпляр представляет собой один раздел. Кэш Azure Redis абстрагирует службы Redis, скрывая их за фасадом, и не предоставляет их напрямую. Самый простой способ реализации секционирования — создать несколько экземпляров кэша Redis Azure и распределить их по ним. Каждый элемент данных можно связать с идентификатором (ключом секции), который указывает, какой кэш хранит элемент данных. Затем логика клиентского приложения может использовать этот идентификатор для маршрутизации запросов в соответствующую секцию. Эта схема проста, но если схема секционирования изменяется (например, если создаются дополнительные экземпляры кэша Redis Для Azure), клиентские приложения могут быть перенастроены.
Настройте сохраняемость данных , чтобы сохранить копию кэша в службе хранилища Azure или использовать георепликацию в зависимости от бизнес-требований. Сохраняемость данных: при перезагрузке главного и реплики данные будут автоматически загружаться из учетной записи хранения. Георепликация. Вторичный кэш должен быть отключен от основного. Вторичная система теперь станет основной системой и может получать записи.
Реализуйте политики повторных попыток в контексте кэша Redis Azure. Большинство служб Azure и клиентских пакетов SDK включают механизм повторных попыток. Эти механизмы отличаются, так как каждая служба имеет разные характеристики и требования. Каждый механизм повторной попытки оптимизирован для определенной службы.
Узнайте , как администрировать кэш Azure для Redis. Узнайте, как может происходить потеря данных при перезагрузке кэша и как протестировать приложение для обеспечения устойчивости.

Исходные артефакты

Чтобы определить экземпляры Redis, которые не используются на уровне "Премиум", используйте следующий запрос:

Resources 
| where type == 'microsoft.cache/redis'
| where properties.sku.name != 'Premium'

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