Что такое кэш Azure для Redis?
Кэш Azure для Redis предоставляет хранилище данных в памяти на основе программного обеспечения Redis. Redis повышает производительность и масштабируемость приложения, которое в значительной степени использует внутренние хранилища данных. Он может обрабатывать большие объемы запросов приложений, сохраняя часто используемые данные в памяти сервера, которые можно быстро записать и считать. Redis предоставляет критически важное решение для хранения данных с низкой задержкой и высокой пропускной способностью для современных приложений.
Кэш Azure для Redis предлагает как управляемую службу Redis с открытым кодом (OSS Redis) и коммерческий продукт от Redis Inc. (Redis Enterprise). Он предоставляет защищенные и выделенные экземпляры сервера Redis и полную совместимость с Redis API. Корпорация Майкрософт управляет службой, размещенной в Azure, и может использовать любое приложение в пределах Или за пределами Azure.
Кэш Azure для Redis можно использовать как распределенный кэш данных или кэш содержимого, хранилище сеансов, брокер сообщений и т. д. Его можно развернуть автономно. Кроме того, его можно развернуть вместе с другими службами базы данных Azure, такими как SQL Azure или Azure Cosmos DB.
Ключевые сценарии
Кэш Azure для Redis повышает производительность приложений за счет поддержки стандартных шаблонов архитектуры приложений. Ниже перечислены некоторые наиболее распространенные шаблоны.
Расписание | Description |
---|---|
Кэш данных | Базы данных часто слишком велики для загрузки непосредственно в кэш. Обычно используется шаблон кэш на стороне для загрузки данных только при необходимости. Когда система вносит изменения в данные, она может обновлять кэш, который затем распространяется на другие клиенты. Кроме того, система может установить истечение срока действия данных или использовать политику вытеснения, чтобы вызвать обновление данных в кэше. |
Кэш содержимого | Многие веб-страницы создаются на основе шаблонов, использующих статическое содержимое, например верхние и нижние колонтитулы или баннеры. Эти статические элементы должны изменяться не часто. Использование кэша в памяти обеспечивает быстрый (по сравнению с серверными хранилищами данных) доступ к статическому содержимому. Данный шаблон сокращает время обработки и нагрузку на сервер, что позволяет повысить скорость реагирования веб-серверов. Это позволяет сократить количество серверов, необходимых для обработки нагрузок. Кэш 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 доступен на таких уровнях:
Уровень | Description |
---|---|
Базовая | Кэш OSS Redis работает на одной виртуальной машине. Этот уровень не имеет соглашения об уровне обслуживания (SLA) и идеально подходит для разработки и тестирования и некритических рабочих нагрузок. |
Стандартные | Кэш OSS Redis работает на двух виртуальных машинах в реплицированной конфигурации. |
Premium | Высокопроизводительные кэши OSS Redis. Этот уровень обеспечивает более высокую пропускную способность, меньшую задержку, лучшую доступность и другие функции. Кэш уровня "Премиум" развертывается на более мощных виртуальных машинах, если сравнивать с уровнями "Базовый" и "Стандартный". |
Функции корпоративного уровня | Высокопроизводительные кэши на основе программного обеспечения Redis Enterprise Redis Inc. Этот уровень поддерживает модули Redis, включая RediSearch, RedisBloom, RedisJSON и RedisTimeSeries. Он также обеспечивает еще больший уровень доступности, чем уровень "Премиум". |
Enterprise Flash | Большие рентабельные кэши на основе программного обеспечения Redis Enterprise от Redis Inc. Этот уровень расширяет хранилище данных Redis до нестандартной памяти, которая дешевле DRAM на виртуальной машине. Это снижает общую стоимость памяти за один ГБ. |
Сравнение возможностей
Страница Цены на кэш Azure для Redis содержит подробное сравнение цен каждого уровня. В следующей таблице описаны некоторые функции, поддерживаемые уровнями:
Описание функции | Basic | Standard | Premium | Функции корпоративного уровня | Enterprise Flash |
---|---|---|---|---|---|
Соглашение об уровне обслуживания | No | Да | Да | Да | Да |
Шифрование данных при передаче | Да | Да | Да | Да | Да |
Сетевая изоляция | Да | Да | Да | Да | Да |
Масштабирование | Да | Да | Да | Да | Да |
Кластеризация OSS | No | No | Да | Да | Да |
Сохраняемость данных | No | No | Да | "Предварительная версия" | "Предварительная версия" |
Избыточность зоны | No | "Предварительная версия" | "Предварительная версия" | Доступно | Доступно |
Георепликация | No | No | Да (пассивный) | Да (активный) | Да (активный) |
Журналы аудита подключения | No | No | Да (на основе опроса) | Да (на основе событий) | Да (на основе событий) |
Модули Redis | No | No | No | Да | Предварительный просмотр |
Импорт и экспорт | No | No | Да | Да | Да |
Перезагрузка | Да | Да | Да | No | No |
Обновление канала и расписания обновлений | Да | Да | Да | No | Нет |
Примечание.
Уровень Enterprise Flash в настоящее время поддерживает только модуль RediSearch (в предварительной версии) и модуль RedisJSON.
Примечание.
Уровни Enterprise и Enterprise Flash в настоящее время поддерживают только масштабирование и масштабирование. Масштабирование и масштабирование пока не поддерживается.
Выбор подходящего уровня
При выборе Кэша Azure для уровня Redis необходимо учитывать следующее:
- Память: уровни "Базовый" и "Стандартный" предлагают 250 МБ – 53 ГБ; уровень "Премиум" — 1,2 ТБ; уровень "Корпоративный" — 2 ТБ, а уровень Корпоративной флэш-памяти — 300 ГБ – 4,5 ТБ. Чтобы создать экземпляры кэша большего размера, можно использовать горизонтальное масштабирование. Дополнительные сведения см. в разделе о ценах Кэш Azure для 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 и виртуальная сеть (виртуальная сеть) обеспечивают повышенную безопасность и изоляцию трафика для Кэш Azure для Redis. Виртуальная сеть позволяет дополнительно ограничить доступ с помощью политик управления доступом к сети. Дополнительные сведения см. в статьях Создание кэша Azure для Redis с помощью Приватного канала Azure и Настройка поддержки виртуальной сети для кэша Azure уровня "Премиум" для Redis.
- Модули Redis: корпоративные уровни поддерживают RediSearch, RedisBloom, RedisTimeSeries и RedisJSON. Эти модули добавляют новые типы данных и функции в Redis.
После создания кэша можно масштабировать с уровня "Базовый" до уровня "Премиум". Переход на более низкий уровень сейчас не поддерживается. Пошаговые инструкции по масштабированию см. в статье "Масштабирование Кэш Azure для Redis" и "Как масштабировать" — уровни "Базовый", "Стандартный" и "Премиум".
Специальные рекомендации для категорий "Корпоративный"
Категории "Корпоративный" полагаются на Redis Enterprise — коммерческий вариант Redis от Redis Inc. Клиенты получают и платят за лицензию на это программное обеспечение с помощью предложения Azure Marketplace. Кэш Azure для Redis управляет приобретением лицензий, чтобы вам не нужно было это делать отдельно. Чтобы делать покупки в Azure Marketplace, необходимо выполнить следующие предварительные требования:
- У вашей подписки Azure должно быть допустимое платежное средство. Деньги на счете в Azure или бесплатные подписки MSDN не поддерживаются.
- Ваша организация должна разрешать покупки в Azure Marketplace.
- Если вы используете частный Marketplace, он должен содержать корпоративное предложение Redis Inc.
Внимание
Кэш Azure для Redis уровня "Корпоративный" требует использования стандартных сетевых подсистем Load Balancer, плата за которые начисляется отдельно от платы за экземпляры кэша. В настоящее время эти расходы поглощаются Кэш Azure для Redis и не передаются клиентам. Это может измениться в будущем. Дополнительные сведения см. в статье Цены на Load Balancer.
Если кэш Enterprise настроен для нескольких Зоны доступности, плата за передачу данных поглощается кэшем Azure для Redis и не передается клиентам. Это может измениться в будущем, где плата за передачу данных будет выставлена по стандартным тарифам пропускной способности сети.
Кроме того, с сохраняемостью данных вы получаете доступ к функции "Управляемые диски". Эти ресурсы можно использовать бесплатно в общедоступной предварительной версии сохраняемости данных для категорий "Корпоративный". После выпуска общедоступной версии функции это может измениться.
Доступность по регионам
География доступности Кэша Azure для Redis постоянно расширяется, охватывая все новые регионы. Чтобы узнать, в каких регионах его можно использовать, см. раздел Доступность продуктов по регионам.
Связанный контент
- Создание Кэша Azure для Redis с открытым кодом
- Создание Кэша Azure для Redis уровня "Корпоративный"
- Использование кэша Azure для Redis с веб-приложением ASP.NET
- Использование Кэша Azure для Redis с приложениями .NET Core
- Использование кэша Azure для Redis с приложениями .NET Framework
- Использование Кэша Azure для Redis в Node.js
- Использование кэша Azure для Redis с приложениями Java
- Использование Кэша Azure для Redis с приложениями Python