Partilhar via


Fornecedor da Cache de Saída ASP.NET Core para a Cache do Azure para Redis

Este artigo explica como configurar o middleware de cache de saída Redis em um aplicativo ASP.NET Core. O middleware de cache de saída permite o cache de respostas HTTP. Os benefícios do uso do cache de saída incluem:

  • Salvar a utilização de recursos do servidor Web de gerar repetidamente respostas HTTP e renderizar páginas da Web HTML.
  • Melhorar o desempenho das solicitações da Web reduzindo as chamadas de dependência.

Os benefícios de usar o Cache Redis do Azure como seu cache de saída incluem:

  • Salvar a utilização de recursos de memória do servidor Web armazenando conteúdo armazenado em cache em um banco de dados Redis externo.
  • Melhorar a resiliência do aplicativo Web persistindo o conteúdo armazenado em cache em um banco de dados Redis externo no cenário de failover ou reinicialização do servidor.

Você pode usar o middleware de cache de saída em todos os tipos de aplicativos ASP.NET Core: API mínima, API da Web com controladores, MVC (Model-View-Controller) e Razor Pages. Para obter um passo a passo detalhado da sintaxe e dos recursos do cache de saída, consulte Middleware de cache de saída no ASP.NET Core.

Pré-requisitos

Para um aplicativo de ponta a ponta que usa cache de saída Redis, consulte Aplicativo Web .NET 8 com Cache de Saída Redis e Azure OpenAI.

Adicionar middleware de cache de saída Redis a um aplicativo Web ASP.NET núcleo vazio

Aqui está o procedimento para usar o Cache Redis do Azure como middleware de cache de saída em um aplicativo ASP.NET Core. O middleware de cache de saída permite o armazenamento em cache de respostas HTTP como saída de página.

Criar um aplicativo Web ASP.NET núcleo vazio

Abra um prompt de comando. Use a linha de comando .NET para criar um aplicativo Web ASP.NET núcleo vazio:

mkdir RedisOutputCache
cd RedisOutputCache
dotnet new web

Adicionar pacotes NuGet para cache de saída Redis

Verifique se o prompt de comando está na pasta do projeto que contém o *.csproj arquivo. Instale o pacote NuGet Microsoft.AspNetCore.OutputCaching.StackExchangeRedis:

dotnet add package Microsoft.AspNetCore.OutputCaching.StackExchangeRedis

Adicionar middleware de cache de saída Redis no código de inicialização do aplicativo Web

  1. Use o prompt de comando para abrir o diretório do projeto no Visual Studio Code:

    code .
    

    Se lhe for pedido, selecione Sim, confio no autor para continuar.

  2. Abra o arquivo Program.cs .

  3. Adicione as chamadas , AddStackExchangeRedisOutputCache()AddOutputCache()e UseOutputCache() função:

    var builder = WebApplication.CreateBuilder(args);
    
    // add Redis Output Cache Middleware service
    builder.Services.AddStackExchangeRedisOutputCache(options => {
        options.Configuration = builder.Configuration["RedisCacheConnection"];
    });
    builder.Services.AddOutputCache(options => {
        // optional: named output-cache profiles
    });
    
    
    var app = builder.Build();
    
    app.MapGet("/", () => "Hello World!");
    
    // use Redis Output Caching Middleware service
    app.UseOutputCache();
    
    app.Run();
    
    
  4. Guarde o ficheiro Program.cs. Certifique-se de que o aplicativo compila sem erros no prompt de comando:

    dotnet build
    

Configurar um ponto de extremidade ou página

  1. Adicione o ponto de extremidade armazenado em cache em app.MetGet():

    app.MapGet("/", () => "Hello World!");
    
    //Added for caching HTTP response of one end point
    app.MapGet("/cached",()=> "Hello Redis Output Cache" + DateTime.Now).CacheOutput();
    
  2. Guarde o ficheiro Program.cs. Certifique-se de que o aplicativo compila sem erros no prompt de comando:

    dotnet build
    

Configurar a conexão do Cache Redis

É uma prática recomendada de segurança evitar o armazenamento de senhas em texto não criptografado em arquivos de código controlado pelo código-fonte. O ASP.NET Core fornece gerenciamento de segredos de usuário para ajudar a garantir que segredos, como cadeias de conexão, sejam salvos e acessados com segurança. Use esse recurso para gerenciar as cadeias de conexão do Cache do Azure para Redis.

  1. Habilite o armazenamento de segredos usando a CLI do Azure:

    dotnet user-secrets init
    
  2. Obtenha as cadeias de conexão do Cache do Azure para Redis usando o portal do Azure.

    Você pode encontrar a cadeia de conexão para camadas Redis de código aberto selecionando Autenticação no menu Recurso . Aqui está um exemplo de cadeia de caracteres: <Azure_redis_name>.redis.cache.windows.net:6380,password=<Azure_redis_primary_accesskey>,ssl=True,abortConnect=False.

    Você pode encontrar as chaves de acesso para Redis Enterprise ou Azure Managed Redis selecionando Chaves de acesso no menu Recurso . A cadeia de conexão pode ser derivada com outras informações do Redis na seção Visão geral do menu Recurso . Aqui está um exemplo de cadeia de caracteres: <Azure_redis_name>.<Azure_region>.redisenterprise.cache.azure.net:10000,password=<Azure_redis_primary_accesskey>,ssl=True,abortConnect=False.

  3. Defina a conexão Redis para o aplicativo Web usando a CLI do Azure:

    dotnet user-secrets set RedisCacheConnection <Azure_Redis_ConnectionString>
    
  4. Execute seu aplicativo:

    dotnet build
    dotnet run
    

    O prompt de comando exibe o progresso:

    Building...
    info: Microsoft.Hosting.Lifetime[14]
    Now listening on: http://localhost:5063
    info: Microsoft.Hosting.Lifetime[0]
    Application started. Press Ctrl+C to shut down.
    ...
    

Verifique se o cache de saída do Redis está funcionando

  1. Navegue até o URL do host local. Eis um exemplo: http://localhost:5063/cached.

  2. Observe se a hora atual está sendo exibida. Atualizar o navegador não altera a hora porque o conteúdo é armazenado em cache. O /cached ponto de extremidade pode exibir texto como o exemplo a seguir:

    Hello Redis Output Cache5/27/2024 8:31:35 PM