Použití výstupní mezipaměti Redis
Vytvoření kódu HTML vráceného klientovi pro složitý požadavek může nějakou dobu trvat a vyžadovat dotazy na více mikroslužeb. Tento kód HTML nebo jiný výstupní kód je běžným kandidátem pro ukládání do mezipaměti.
Představte si, že pracujete pro prodejce venkovního vybavení. Nová webová aplikace obsahuje mikroslužbu, která vytváří uživatelské rozhraní a vrací kód HTML do prohlížečů. Chcete zajistit optimální výkon.
V této lekci se dozvíte o ukládání výstupu do mezipaměti a o tom, jak ho implementovat v mikroslužbě pomocí Redis a .NET Aspire.
Co je výstupní mezipaměť?
Výstupní mezipaměť použijte, když chcete ukládat kompletní stránky HTML ve webových aplikacích nebo v minimálních rozhraních API menší části výstupu. Optimální výkon získáte díky ukládání stránek do mezipaměti, které se často požadují, jako je domovská stránka vaší aplikace.
Nastavení ukládání výstupu do mezipaměti v .NET Aspire
Postup instalace a konfigurace je stejný jako u součásti distribuované mezipaměti s tím rozdílem, že do náročných projektů instalujete komponentu ukládání výstupu do mezipaměti.
Konfigurace hostitele aplikace
V hostiteli aplikace nainstalujte stejnou komponentu hostování Redis, jakou jste použili pro distribuované ukládání do mezipaměti:
dotnet add package Aspire.Hosting.Redis --prerelease
Registrační kód je úplně stejný. Tento kód budete muset přidat jenom v případě, že jste ho ještě nepřidali pro distribuované ukládání do mezipaměti:
// Register the cache
var redis = builder.AddRedis("redis");
// Initiate the consuming project and pass the cache
builder.AddProject<Projects.ConsumingProject>()
.WithReference(redis);
Konfigurace náročných projektů
V projektech mikroslužeb přidejte komponentu ukládání výstupu Redis do mezipaměti:
dotnet add package Aspire.StackExchange.Redis.OutputCaching
Použití výstupní mezipaměti
Využíváním projektu je obvykle mikroslužba, která generuje uživatelské rozhraní vaší aplikace. Může to být například ASP.NET nebo webová aplikace Blazor nebo minimální rozhraní API. Do aplikace musíte přidat výstupní mezipaměť a pak do projektu přidat middleware takto:
// Add the output cache
builder.AddRedisOutputCache();
// Build the app
var app = builder.Build();
// Add the middleware
app.UseOutputCache();
Ukládání do mezipaměti kompletní stránky
Pokud chcete stránku uložit do mezipaměti, použijte OutputCache
atribut, například na této stránce Razor Page:
@page "/"
@attribute [OutputCache(Duration = 10)]
<PageTitle>Welcome to Contoso</PageTitle>
<h1>Welcome to Contoso</h1>
This is our homepage. The time is: @DateTime.Now
Ukládání do mezipaměti výstup v minimálním rozhraní API
Minimální rozhraní API je projekt, který rychle implementuje webovou službu HTTP. Zkrátí kód potřebný k vytvoření rozhraní RESTful API tím, že se vyhne generování uživatelského rozhraní a nepotřebným kontrolerům. Místo toho jsou akce rozhraní API a trasy deklarovány přímo.
V tomto příkladu se vrátí jednoduchá odpověď, když uživatel požádá o ID produktu:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/products/{ProdId}",
(int ProdId) => $"The product ID is {ProdId}.");
app.Run();
Pokud chcete tuto odpověď uložit do mezipaměti, zavolejte metodu CacheOutput()
nebo použijte OutputCache
atribut ve MapGet
volání:
app.MapGet("/products/{ProdId}", (int ProdId) => $"The product ID is {ProdId}.").CacheOutput();
app.MapGet("/products/{ProdId}", [OutputCache] (int ProdId) => $"The product ID is {ProdId}.");
Další informace
- Komponenta ukládání výstupu do mezipaměti .NET Aspire StackExchange Redis
- Konfigurace StackExchange Redis