Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
- Baixe e instale o SDK do .NET 8 ou posterior.
- Baixe e instale o Visual Studio Code.
- Crie uma instância do Azure Cache para Redis. Para mais informações, consulte:
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
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.
Abra o arquivo Program.cs .
Adicione as chamadas ,
AddStackExchangeRedisOutputCache()
AddOutputCache()
eUseOutputCache()
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();
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
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();
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.
Habilite o armazenamento de segredos usando a CLI do Azure:
dotnet user-secrets init
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
.Defina a conexão Redis para o aplicativo Web usando a CLI do Azure:
dotnet user-secrets set RedisCacheConnection <Azure_Redis_ConnectionString>
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
Navegue até o URL do host local. Eis um exemplo:
http://localhost:5063/cached
.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