Что такое кэш Azure для Redis?

Внимание

Кэш Azure для Redis объявил о графике вывода из эксплуатации для всех SKU. Мы рекомендуем как можно скорее перенести существующие экземпляры Azure Cache для Redis на управляемые Azure Managed Redis.

Руководство по миграции:

Дополнительные сведения о выходе на пенсию:

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

Платформа Azure Cache для Redis предлагает как сервис с открытым исходным кодом Redis (OSS Redis), так и коммерческий продукт от компании Redis Inc. (Redis Enterprise) в качестве управляемой службы. Он предоставляет защищенные и выделенные экземпляры сервера Redis и полную совместимость с Redis API. Корпорация Майкрософт управляет службой, размещенной в Azure, которую может использовать любое приложение как в пределах, так и за пределами Azure.

Кэш Azure для Redis можно использовать как распределенный кэш данных или кэш содержимого, хранилище сеансов, брокер сообщений и т. д. Его можно развернуть автономно. Кроме того, его можно развернуть вместе с другими службами базы данных Azure, такими как SQL Azure или Azure Cosmos DB.

Ключевые сценарии

Кэш Azure для Redis повышает производительность приложений за счет поддержки стандартных шаблонов архитектуры приложений. Ниже перечислены некоторые наиболее распространенные шаблоны.

Расписание Описание
Кэш данных Базы данных часто слишком велики для загрузки непосредственно в кэш. Обычно используется шаблон кэш на стороне для загрузки данных только при необходимости. Когда система вносит изменения в данные, она может обновлять кэш, который затем распространяется на другие клиенты. Кроме того, система может установить истечение срока действия данных или использовать политику вытеснения, чтобы вызвать обновление данных в кэше.
Кэш содержимого Многие веб-страницы создаются на основе шаблонов, использующих статическое содержимое, например верхние и нижние колонтитулы или баннеры. Эти статические элементы должны изменяться не часто. Использование кэша в памяти обеспечивает быстрый (по сравнению с серверными хранилищами данных) доступ к статическому содержимому. Данный шаблон сокращает время обработки и нагрузку на сервер, что позволяет повысить скорость реагирования веб-серверов. Это позволяет сократить количество серверов, необходимых для обработки нагрузок. Кэш Azure для Redis предоставляет поставщика кэша вывода Redis, который поддерживает этот шаблон с помощью ASP.NET.
Хранилище сеансов Этот шаблон обычно используется с корзинами покупок и другими данными из истории пользователя, которую веб-приложение может связать с файлами cookie пользователя. Хранение большого объема содержимого в файле cookie может отрицательно сказаться на производительности, так как размер этого файла растет, передается и проверяется с каждым запросом. Типичным решением является использование файла cookie в качестве ключа для запроса данных в базе данных. При использовании кэша в памяти, например, Кэш Azure для Redis, связывание информации с данными пользователя происходит быстрее, чем взаимодействие с полной реляционной базой данных.
Очереди задач и сообщений Приложения часто добавляют задачи в очередь, если для выполнения операций, связанных с запросом, требуется какое-то время. Более длительные операции помещаются в очередь для последовательной обработки (зачастую на другом сервере). Этот метод отсрочки работы называется постановкой задач в очередь. Кэш Azure для Redis предоставляет распределенную очередь, обеспечивающую возможность использования этого шаблона в приложении.
Распределенные транзакции Приложениям иногда требуется, чтобы ряд команд для серверного хранилища данных выполнялся как единая атомарная операция. Все команды должны успешно завершиться или все транзакции должны быть возвращены в исходное состояние. Кэш Azure для Redis поддерживает выполнение пакета команд в рамках одной транзакции.

Версии Redis

Кэш Azure для Redis поддерживает OSS Redis версии 4.0.x и 6.0.x. Мы приняли решение пропустить Redis 5.0, чтобы принести вам последнюю версию. Ранее Кэш Azure для Redis поддерживал одну версию Redis. В будущем можно выбрать более новое обновление основного выпуска и по крайней мере одну старую стабильную версию. Вы можете выбрать версию, которая подходит для вашего приложения.

Уровни службы

Кэш Azure для Redis доступен на таких уровнях:

Уровень Описание
Базовый Кэш OSS Redis работает на одной виртуальной машине. Этот уровень не имеет соглашения об уровне обслуживания (SLA) и идеально подходит для разработки и тестирования и некритических рабочих нагрузок.
Стандарт Кэш OSS Redis работает на двух виртуальных машинах в реплицированной конфигурации.
Премия Высокопроизводительные кэши OSS Redis. Этот уровень обеспечивает более высокую пропускную способность, меньшую задержку, лучшую доступность и другие функции. Кэш уровня "Премиум" развертывается на более мощных виртуальных машинах, если сравнивать с уровнями "Базовый" и "Стандартный".
Предприятие Высокопроизводительные кэши, работающие на программном обеспечении Redis Enterprise компании Redis Inc. Этот уровень поддерживает модули Redis, включая RediSearch, RedisBloom, RedisJSON и RedisTimeSeries. Он также обеспечивает еще больший уровень доступности, чем уровень "Премиум".
Корпоративная флэш-память Экономичные большие кэши, работающие на программном обеспечении Redis Enterprise от компании Redis Inc. Этот уровень распространяет хранилище данных Redis на энергонезависимую память, которая дешевле, чем DRAM, на виртуальной машине. Это снижает общую стоимость памяти за один ГБ.

Сравнение возможностей

Страница Цены на кэш Azure для Redis содержит подробное сравнение цен каждого уровня. В следующей таблице описаны некоторые функции, поддерживаемые уровнями:

Описание функции Базовый Стандарт Премия Предприятие Корпоративная флэш-память
Соглашение об уровне обслуживания нет Да Да Да Да
Шифрование данных при передаче Да Да Да Да Да
Сетевая изоляция Да Да Да Да Да
Масштабирование Да Да Да Да Да
Кластеризация OSS нет нет Да Да Да
Сохраняемость данных нет нет Да "Предварительная версия" "Предварительная версия"
Зональная избыточность нет Доступно Доступно Доступно Доступно
Георепликация нет нет Да (пассивный) Да (активный) Да (активный)
Журналы аудита подключения нет нет Да (на основе опроса) Да (на основе событий) Да (на основе событий)
Модули Redis нет нет нет Да "Предварительная версия"
Импорт и экспорт нет нет Да Да Да
Перезагрузка Да Да Да нет нет
Обновление канала и расписания обновлений Да Да Да нет нет

Примечание.

Уровень Enterprise Flash в настоящее время поддерживает только модуль RediSearch (в предварительной версии) и модуль RedisJSON.

Примечание.

В настоящее время уровни Enterprise и Enterprise Flash поддерживают только масштабирование вверх и расширение. Масштабирование вниз и сужение пока не поддерживается.

Выбор подходящего уровня

При выборе Кэша Azure для уровня Redis необходимо учитывать следующее:

  • Память: уровни "Базовый" и "Стандартный" предлагают 250 МБ – 53 ГБ; уровень "Премиум" — 1,2 ТБ; уровень "Корпоративный" — 2 ТБ, а уровень Корпоративной флэш-памяти — 300 ГБ – 4,5 ТБ. Чтобы создать экземпляры кэша большего размера, можно использовать горизонтальное масштабирование. Дополнительные сведения см. в разделе Цены на Azure Cache для Redis.
  • Производительность: Кэши на уровнях "Премиум" и "Энтерпрайз" развертываются на оборудовании с более быстрыми процессорами, что дает более высокую производительность по сравнению с уровнем "Базовый" или "Стандартный". Уровень Enterprise обычно имеет лучшую производительность для большинства рабочих нагрузок, особенно с большими экземплярами кэша. Дополнительные сведения см. в статье Тестирование производительности.
  • Выделенное ядро для сервера Redis: все кэши, кроме C0, выполняют выделенные виртуальные процессоры. Уровни "Базовый", "Стандартный" и "Премиум" запускают открытый код Redis, который по замыслу использует только один поток для обработки команд. На этих уровнях больше виртуальных ЦП обычно повышает производительность пропускной способности, так как Кэш Azure для Redis использует другие виртуальные ЦП для обработки ввода-вывода или для процессов ОС. Однако добавление дополнительных виртуальных ЦП на экземпляр может не привести к увеличению линейной производительности. Масштабирование вширь обычно повышает производительность в большей степени, чем масштабирование вверх в этих уровнях. Уровни Enterprise и Enterprise Flash выполняются на Redis Enterprise, что позволяет использовать несколько виртуальных ЦП на экземпляр, что также может значительно повысить производительность по сравнению с другими уровнями. Для уровней флэш-памяти Enterprise и Enterprise рекомендуется увеличить масштаб перед масштабированием.
  • Производительность сети. Если у вас есть рабочая нагрузка, требующая высокой пропускной способности, уровень "Премиум" или "Корпоративный" обеспечивает большую пропускную способность по сравнению с базовым или стандартным. Также в рамках каждого уровня пропускная способность для кэшей большего размера выше из-за виртуальной машины, на которой размещен кэш. Более высокие ограничения пропускной способности помогают избежать переполнения сети, что приводит к истечению времени ожидания в приложении. Дополнительные сведения см. в статье Тестирование производительности.
  • Максимальное число подключений клиентов. Уровни "Премиум" и "Корпоративный" обеспечивают максимальное число клиентов, которые могут подключаться к Redis, причем чем больше размер кэша, тем больше число подключений. Кластеризация увеличивает общий объем пропускной способности сети, доступной для кластеризованного кэша.
  • Высокий уровень доступности: Кэш Azure для Redis предоставляет несколько вариантов высокой доступности. Он гарантирует, что кэш уровня "Стандартный", "Премиум" или "Корпоративный" будет доступен в соответствии с Соглашением об уровне обслуживания. Соглашение об уровне обслуживания касается только подключения к конечным точкам кэша. Соглашение об уровне обслуживания не включает защиту от потери данных. Для повышения устойчивости к потере данных рекомендуется использовать функцию постоянного хранения данных Redis уровня "Премиум" и "Корпоративный".
  • Сохраняемость данных. Уровни "Премиум" и "Корпоративный" позволяют сохранять данные кэша в учетной записи служба хранилища Azure и управляемом диске соответственно. Проблемы с базовой инфраструктурой могут привести к потере данных. Для повышения устойчивости к потере данных на этих уровнях рекомендуется использовать функцию постоянного хранения данных в Redis. Кэш Azure для Redis предлагает варианты RDB и AOF (предварительная версия). Сохраняемость данных можно включить с помощью портала Azure и CLI. Дополнительные сведения см. в статье Настройка сохраняемости данных для Кэша Azure для Redis уровня "Премиум".
  • Сетевая изоляция: развертывания Azure Private Link и виртуальной сети (VNet) обеспечивают повышенную безопасность и изоляцию трафика для Azure Cache for Redis. Виртуальная сеть позволяет дополнительно ограничить доступ с помощью политик управления доступом к сети. Дополнительные сведения см. в статьях Создание кэша Azure для Redis с помощью Приватного канала Azure и Настройка поддержки виртуальной сети для кэша Azure уровня "Премиум" для Redis.
  • Модули Redis: корпоративные уровни поддерживают RediSearch, RedisBloom, RedisTimeSeries и RedisJSON. Эти модули добавляют новые типы данных и функции в Redis.

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

Специальные рекомендации для уровня "Enterprise"

Категории "Корпоративный" полагаются на Redis Enterprise — коммерческий вариант Redis от Redis Inc. Клиенты получают и платят за лицензию на это программное обеспечение с помощью предложения Azure Marketplace. Кэш Azure для Redis управляет приобретением лицензий, чтобы вам не нужно было это делать отдельно. Чтобы приобрести в Azure Marketplace, необходимо иметь следующие предварительные требования:

  • У вашей подписки Azure должно быть допустимое платежное средство. Деньги на счете в Azure или бесплатные подписки MSDN не поддерживаются.
  • Ваша организация должна разрешать покупки в Azure Marketplace.
  • Если вы используете частный Marketplace, он должен содержать корпоративное предложение Redis Inc.

Внимание

Кэш Azure для Redis Enterprise требует использования стандартных сетевых балансировщиков нагрузки, которые оплачиваются отдельно от экземпляров кэша. В настоящее время эти расходы поглощаются Azure Cache for Redis и не передаются клиентам. Это может измениться в будущем. Дополнительные сведения см. в статье Цены на Load Balancer.

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

Кроме того, с сохраняемостью данных вы получаете доступ к функции "Управляемые диски". Эти ресурсы можно использовать бесплатно во время общедоступного предварительного просмотра функции сохранения данных для корпоративных пользователей. После выпуска общедоступной версии функции это может измениться.

Доступность по регионам

Доступность Azure Cache для Redis постоянно расширяется в новые регионы. Чтобы узнать, в каких регионах его можно использовать, см. раздел Доступность продуктов по регионам.