Краткое руководство. Использование кэша Azure для Redis с веб-приложением ASP.NET Core

Из этого краткого руководства вы узнаете, как внедрить кэш Azure для Redis в веб-приложение ASP.NET Core, которое подключается к кэшу Azure для Redis для хранения и извлечения данных из кэша.

В .NET Core также есть поставщики кэширования. Чтобы быстро приступить к использованию Redis с минимальными изменениями существующего кода, см. следующее:

Переход к коду на GitHub

Клонируйте репозиторий https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet-core в GitHub.

На следующем шаге вы увидите реальное приложение eShop, демонстрирующее поставщики кэширования ASP.NET ядра: ASP.NET основной eShop с помощью поставщиков кэширования Redis.

Включены следующие функции:

  • Распределенное кэширование Redis
  • Поставщик состояний сеанса Redis

Инструкции по развертыванию находятся в README.md.

Необходимые компоненты

Создание кэша

  1. Чтобы создать кэш, войдите на портал Azure и выберите Создать ресурс.

    Область навигации слева с выделенным элементом

  2. На странице Создание выберите Базы данных, а затем Кэш Azure для Redis.

    Страница

  3. На странице Новый кэш Redis настройте параметры для нового кэша.

    Параметр Выберите значение Description
    Подписка Раскройте список и выберите нужную подписку. В этой подписке будет создан новый экземпляр кэша Redis для Azure.
    Группа ресурсов Раскройте список и выберите группу ресурсов или нажмите Создать и введите имя для новой группы ресурсов. Имя группы ресурсов, в которой будут созданы кэш и другие ресурсы. Поместив все ресурсы приложения в одну группу ресурсов, вы сможете легко управлять ими и/или удалить их вместе.
    DNS-имя Введите уникальное имя. Имя кэша должно быть строкой длиной от 1 до 63 символов и содержать только цифры, буквы и дефисы. Имя должно начинаться и заканчиваться цифрой или буквой и не может содержать более одного дефиса подряд. Имя узла экземпляра кэша <DNS-имя.redis.cache.windows.net>.
    Местонахождение Откройте список и выберите расположение. Выберите регион рядом с другими службами, используюющими кэш.
    Тип кэша В раскрывающемся списке выберите уровень. Уровень определяет размер, производительность кэша и доступные функции. Дополнительные сведения см. в обзоре предложения "Кэш Redis для Azure".
  4. Выберите вкладку Сети или нажмите кнопку Сети в нижней части страницы.

  5. На вкладке Сети выберите способ подключения.

  6. Нажмите кнопку "Далее" или нажмите кнопку "Далее" в нижней части страницы, чтобы просмотреть вкладку "Дополнительно".

    Снимок экрана: вкладка

    • Для кэшей "Базовый" или "Стандартный" переключите выбор порта, отличного от TLS. Вы также можете выбрать, нужно ли включить проверку подлинности Microsoft Entra.
    • Для кэша Premium настройте параметры для порта, отличного от TLS, кластеризация, управляемого удостоверения и сохраняемости данных. Вы также можете выбрать, нужно ли включить проверку подлинности Microsoft Entra.
  7. Выберите вкладку Next: Tags (Далее: теги) или нажмите в нижней части страницы кнопку Next: Tags (Далее: теги).

  8. При необходимости на вкладке Теги введите имя и значение, чтобы классифицировать ресурс.

  9. Выберите Review + create (Просмотреть и создать). Вы будете перенаправлены на вкладку Проверка и создание, где Azure проверит вашу конфигурацию.

  10. Когда отобразится сообщение "Проверка пройдена" зеленого цвета, выберите Создать.

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

Получение имени узла, портов и ключей доступа с помощью портала Azure

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

  • Чтобы получить ключи доступа, выберите "Проверка подлинности " в меню "Ресурс". Затем откройте вкладку "Ключи доступа".

    Ключи кэша Azure для Redis

  • Чтобы получить имя узла и порты для кэша, выберите "Обзор " в меню "Ресурс". Имя узла имеет вид <DNS-имя>.redis.cache.windows.net.

    Свойства Кэша Azure для Redis

Запомните или запишите имя узла и первичный ключ доступа. Эти значения вам потребуются для создания секрета CacheConnection.

Добавление локального секрета для строки подключения

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

dotnet user-secrets set CacheConnection "<cache name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<primary-access-key>"

Подключение к кэшу с помощью RedisConnection

Класс RedisConnection управляет подключением к кэшу. Подключение выполняется в этой инструкции в HomeController.cs в папке Controllers:

_redisConnection = await _redisConnectionFactory;

Вы RedisConnection.csувидите, что StackExchange.Redis пространство имен добавляется в код. Оно требуется для класса RedisConnection.

using StackExchange.Redis;

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

Для получения дополнительных сведений см. статью StackExchange.Redis и код в репозитории GitHub.

Представления макета в примере

Макет домашней страницы для этого примера хранится в файле _Layout.cshtml. На этой странице запускается фактическое тестирование кэша. Для этого на этой странице выберите Кэш Azure для Redis Test.

  1. Откройте Views\Shared\_Layout.cshtml.

  2. Вы должны увидеть в <div class="navbar-header">:

    <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="RedisCache">Azure Cache for Redis Test</a>
    

Снимок экрана: страница приветствия

Отображение данных из кэша

На домашней странице выберите Кэш Azure для Redis Test, чтобы просмотреть пример выходных данных.

  1. В обозревателе решений разверните папку Views и щелкните правой кнопкой мыши папку Home.

  2. В файле RedisCache.cshtml должен отображаться следующий код.

    @{
        ViewBag.Title = "Azure Cache for Redis Test";
    }
    
    <h2>@ViewBag.Title.</h2>
    <h3>@ViewBag.Message</h3>
    <br /><br />
    <table border="1" cellpadding="10">
        <tr>
            <th>Command</th>
            <th>Result</th>
        </tr>
        <tr>
            <td>@ViewBag.command1</td>
            <td><pre>@ViewBag.command1Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command2</td>
            <td><pre>@ViewBag.command2Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command3</td>
            <td><pre>@ViewBag.command3Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command4</td>
            <td><pre>@ViewBag.command4Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command5</td>
            <td><pre>@ViewBag.command5Result</pre></td>
        </tr>
    </table>
    

Локальный запуск приложения

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

    dotnet build
    
  2. Теперь запустите это приложение с помощью следующей команды.

    dotnet run
    
  3. Перейдите на сайт https://localhost:5001 в веб-браузере.

  4. На панели навигации на веб-странице щелкните Проверка кэша Azure для Redis, чтобы проверить доступ к кэшу.

Снимок экрана: завершенный локальный тест

Очистка ресурсов

Если вы хотите продолжить использовать ресурсы, созданные в этой статье, сохраните группу ресурсов.

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

Внимание

Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не ту группу ресурсов или не те ресурсы. Если вы создали ресурсы внутри существующей группы ресурсов, содержащей ресурсы, которые необходимо сохранить, можно удалить каждый ресурс по отдельности, а не удалить группу ресурсов.

Удаление группы ресурсов

  1. Войдите на портал Azure и щелкните Группы ресурсов.

  2. Выберите группу ресурсов, которую нужно удалить.

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

    Снимок экрана: список групп ресурсов для удаления в рабочей области.

  3. Выберите команду Удалить группу ресурсов.

  4. Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и щелкните Удалить.

    Снимок экрана: форма, для которой требуется имя ресурса для подтверждения удаления.

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