Sdílet prostřednictvím


Integrace .NET AspireRedis®* ukládání výstupu do mezipaměti

Zahrnuje:Včetně integrace hostování Integrace hostování —&— integrace zahrnuta integrace

Naučte se používat integraci ukládání výstupu do mezipaměti .NET AspireRedis. Integrace klienta Aspire.StackExchange.Redis.OutputCaching slouží k registraci poskytovatele ASP.NET Core výstupního ukládání do mezipaměti podporovaný serverem Redis s obrazem kontejneru docker.io/library/redis.

Naučte se používat integraci ukládání výstupu do mezipaměti .NET AspireRedis. Integrace klienta Aspire.StackExchange.Redis.OutputCaching slouží k registraci poskytovatele ukládání výstupu do mezipaměti ASP.NET Core, který je podporován serverem Garnet a image kontejnerem ghcr.io/microsoft/garnet.

Naučte se používat integraci ukládání výstupu do mezipaměti .NET AspireRedis. Integrace klienta Aspire.StackExchange.Redis.OutputCaching je použita k registraci poskytovatele ASP.NET Core ukládání výstupu do mezipaměti, který je podpořen serverem Valkey, s kontejnorovým obrazem docker.io/valkey/valkey.

Integrace hostování

Integrace hostování Redis modeluje prostředek Redis jako typ RedisResource. Pokud chcete získat přístup k tomuto typu a rozhraním API, abyste je mohli vyjádřit jako prostředky v projektu app host, přidejte balíček NuGet 📦Aspire.Hosting.Redis:

dotnet add package Aspire.Hosting.Redis

Pro více informací si přečtěte dotnet add package nebo Správa závislostí balíčků v aplikacích .NET.

Přidejte prostředek Redis

V projektu hostitele vaší aplikace zavolejte na instanci AddRedis funkci builder, abyste přidali prostředek Redis.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Když .NET.NET Aspire přidá do hostitele aplikace image kontejneru, jak je znázorněno v předchozím příkladu s imagí docker.io/Redis/Redis, vytvoří na místním počítači novou instanci Redis. Odkaz na váš prostředek Redis (proměnná cache) se přidává do ExampleProject.

Metoda WithReference nakonfiguruje připojení v ExampleProject s názvem "cache". Další informace naleznete v části Životní cyklus prostředků kontejneru.

Spropitné

Pokud byste se raději připojili k existující instanci Redis, volejte místo toho AddConnectionString. Pro více informací se podívejte na Odkaz na existující prostředky.

Přidání prostředku Redis pomocí Redis Insights

Pokud chcete do zdroje Redis přidat , zavolejte metodu Redis.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache")
                   .WithRedisInsight();

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Redis Insights je bezplatné grafické rozhraní pro analýzu Redis dat ve všech operačních systémech a nasazeních Redis pomocí našeho asistenta AI Redis Copilot. .NET .NET Aspire přidá do hostitele aplikace, na kterém běží aplikace commander, další image kontejneru docker.io/redis/redisinsight.

Poznámka

Pokud chcete nakonfigurovat port hostitele pro řetězec RedisInsightResource, uskutečněte volání rozhraní API WithHostPort a uveďte požadované číslo portu.

Přidání Redis prostředku pomocí Redis Commander

Chcete-li přidat velitele Redis do prostředku Redis, zavolejte metodu WithRedisCommander:

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache")
                   .WithRedisCommander();

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Redis Commander je webová aplikace Node.js, která slouží k zobrazení, úpravám a správě Redis Database. .NET .NET Aspire přidá do hostitele aplikace, na kterém běží aplikace commander, další image kontejneru docker.io/rediscommander/redis-commander.

Spropitné

Pokud chcete nakonfigurovat port hostitele pro řetězec RedisCommanderResource, uskutečněte volání rozhraní API WithHostPort a uveďte požadované číslo portu.

Přidejte Redis zdroj s datovým objemem

Pokud chcete do prostředku Redis přidat datový svazek, zavolejte metodu WithDataVolume prostředku Redis:

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache")
                   .WithDataVolume(isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Objem dat se používá k zachování Redis dat mimo životní cyklus kontejneru. Datový svazek se připojí k cestě /data v kontejneru Redis a když není zadaný parametr name, název se náhodně vygeneruje. Další informace o objemech dat a podrobnosti o tom, proč jsou upřednostňovány před připojení typu bind, je možné nalézt v dokumentaci Docker: Svazky.

Přidání prostředku Redis s připojenou datovou vazbou

Pokud chcete přidat datový bind mount k prostředku Redis, zavolejte metodu WithDataBindMount.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache")
                   .WithDataBindMount(
                       source: @"C:\Redis\Data",
                       isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Důležitý

Připojení vazby dat mají v porovnání s svazkyomezené funkce, které nabízejí lepší výkon, přenositelnost a zabezpečení, což je vhodnější pro produkční prostředí. Vázané připojení však umožňuje přímý přístup a úpravy souborů v hostitelském systému, což je ideální pro vývoj a testování vyžadující změny v reálném čase.

Datová připojení typu bind využívají systém souborů hostitelského počítače pro zachování Redis dat při restartech kontejneru. Datový svazek je připojen na cestu C:\Redis\Data na Windows (nebo /Redis/Data na Unix) na hostitelském počítači v kontejneru Redis. Další informace o připojeních datových vazeb najdete v dokumentaci Docker: Připojení vazby.

Přidání prostředku Redis s perzistencí

Pokud chcete do prostředku Redis přidat trvalost, zavolejte metodu WithPersistence s připojením datového svazku nebo datové vazby:

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache")
                   .WithDataVolume()
                   .WithPersistence(
                       interval: TimeSpan.FromMinutes(5),
                       keysChangedThreshold: 100);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Předchozí kód přidá trvalost do prostředku Redis pořízením snímků dat Redis v zadaném intervalu a prahové hodnotě. interval je čas mezi exporty snímků a keysChangedThreshold je počet operací změn klíčů potřebných k aktivaci snímku. Další informace o perzistenci najdete v dokumentaci: RedisPersistence.

Integrace hostingu Garnet modeluje zdroj Garnet jako typ GarnetResource. Pro přístup k tomuto typu a k rozhraním API, která vám umožní přidat jej do balíčku NuGet 📦Aspire.Hosting.Garnet v projektu hostitele aplikace.

dotnet add package Aspire.Hosting.Garnet

Pro více informací si přečtěte dotnet add package nebo Správa závislostí balíčků v aplikacích .NET.

Přidejte prostředek Garnet

V projektu hostitele vaší aplikace zavolejte AddGarnet na instanci builder pro přidání prostředku Garnet:

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddGarnet("cache");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Když .NET.NET Aspire přidá do hostitele aplikace image kontejneru, jak je znázorněno v předchozím příkladu s imagí ghcr.io/microsoft/garnet, vytvoří na místním počítači novou instanci Garnetu. K cache se přidá odkaz na váš prostředek Garnet (proměnná ExampleProject).

Metoda WithReference nakonfiguruje připojení v ExampleProject s názvem "cache". Další informace naleznete v části Životní cyklus prostředků kontejneru.

Spropitné

Pokud byste se raději připojili k existující instanci Garnet, zavolejte místo toho AddConnectionString. Pro více informací se podívejte na Odkaz na existující prostředky.

Přidat zdroj Garnet s datovým svazkem

Pokud chcete přidat datový svazek do prostředku Garnet, zavolejte metodu AddGarnet prostředku Garnet:

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddGarnet("cache")
                   .WithDataVolume(isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Objem dat se používá k zachování dat Garnet mimo životní cyklus kontejneru. Datový svazek se připojí k cestě /data v kontejneru Garnet a pokud není zadaný parametr name, název se náhodně vygeneruje. Další informace o objemech dat a podrobnosti o tom, proč jsou upřednostňovány před připojení typu bind, je možné nalézt v dokumentaci Docker: Svazky.

Přidejte prostředek Garnet s připojením pro vazbu dat

Pokud chcete přidat datovou připojovací vazbu k prostředku Garnet, zavolejte metodu WithDataBindMount:

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddGarnet("cache")
                   .WithDataBindMount(
                       source: @"C:\Garnet\Data",
                       isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Důležitý

Připojení vazby dat mají v porovnání s svazkyomezené funkce, které nabízejí lepší výkon, přenositelnost a zabezpečení, což je vhodnější pro produkční prostředí. Vázané připojení však umožňuje přímý přístup a úpravy souborů v hostitelském systému, což je ideální pro vývoj a testování vyžadující změny v reálném čase.

Datové vazební úchyty využívají souborový systém hostitelského počítače k uchování dat Garnet při restartování kontejneru. Datový bind mount je připojen na cestu C:\Garnet\Data ve Windows (nebo /Garnet/Data na Unix) na hostitelském počítači v rámci kontejneru Garnet. Další informace o připojeních datových vazeb najdete v dokumentaci Docker: Připojení vazby.

Přidejte zdroj Garnet s perzistencí

Pokud chcete do prostředku Garnet přidat trvalost, zavolejte metodu WithPersistence s připojením datového svazku nebo datové vazby:

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddGarnet("cache")
                   .WithDataVolume()
                   .WithPersistence(
                       interval: TimeSpan.FromMinutes(5),
                       keysChangedThreshold: 100);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Předchozí kód přidá trvalost do prostředku Redis pořízením snímků dat Garnetu v zadaném intervalu a prahové hodnotě. interval je čas mezi exporty snímků a keysChangedThreshold je počet operací změn klíčů potřebných k aktivaci snímku. Další informace o perzistenci najdete v dokumentaci: RedisPersistence.

Valkey hosting integrace modeluje zdroj Valkey jako typ ValkeyResource. Chcete-li mít přístup k tomuto typu a rozhraním API, které vám umožní přidat je do balíčku NuGet 📦Aspire.Hosting.Valkey v projektu hostitele aplikace .

dotnet add package Aspire.Hosting.Valkey

Pro více informací si přečtěte dotnet add package nebo Správa závislostí balíčků v aplikacích .NET.

Přidejte prostředek Valkey

V projektu hostitele aplikace zavolejte AddValkey na instanci builder pro přidání prostředku Valkey.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddValkey("cache");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Když .NET.NET Aspire přidá obraz kontejneru do hostitele aplikace, jak je znázorněno v předchozím příkladu s obrazem docker.io/valkey/valkey, vytvoří na místním počítači novou instanci Valkey. Do cachese přidá odkaz na zdroj Valkey (proměnná ExampleProject).

Metoda WithReference nakonfiguruje připojení v ExampleProject s názvem "cache". Další informace naleznete v části Životní cyklus prostředků kontejneru.

Spropitné

Pokud se raději připojíte k existující instanci Valkey, zavolejte místo toho AddConnectionString. Pro více informací se podívejte na Odkaz na existující prostředky.

Přidání prostředku Valkey s objemem dat

Pokud chcete přidat datový svazek do zdroje Valkey, zavolejte metodu AddValkey na zdroj Valkey.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddValkey("cache")
                   .WithDataVolume(isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Objem dat se používá k zachování dat Valkey mimo životní cyklus kontejneru. Datový svazek se připojí k cestě /data v kontejneru Valkey a pokud není zadaný parametr name, název se náhodně vygeneruje. Další informace o objemech dat a podrobnosti o tom, proč jsou upřednostňovány před připojení typu bind, je možné nalézt v dokumentaci Docker: Svazky.

Přidejte prostředek Valkey s připojením datového svazku.

Pro přidání datové vazby k prostředku Valkey použijte metodu WithDataBindMount:

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddValkey("cache")
                   .WithDataBindMount(
                       source: @"C:\Valkey\Data",
                       isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Důležitý

Připojení vazby dat mají v porovnání s svazkyomezené funkce, které nabízejí lepší výkon, přenositelnost a zabezpečení, což je vhodnější pro produkční prostředí. Vázané připojení však umožňuje přímý přístup a úpravy souborů v hostitelském systému, což je ideální pro vývoj a testování vyžadující změny v reálném čase.

Datové vazby při připojování spoléhají na souborový systém hostitelského stroje pro uložení dat Valkey při opětovném spuštění kontejneru. Datová vazba je připojena na C:\Valkey\Data cestu na Windows (nebo /Valkey/Data na Unix) na hostitelském počítači v kontejneru Valkey. Další informace o připojeních datových vazeb najdete v dokumentaci Docker: Připojení vazby.

Přidání prostředku Valkey s trvalostí

Pokud chcete do prostředku Valkey přidat trvalost, zavolejte metodu WithPersistence s připojením datového svazku nebo vazby dat:

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddValkey("cache")
                   .WithDataVolume()
                   .WithPersistence(
                       interval: TimeSpan.FromMinutes(5),
                       keysChangedThreshold: 100);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Předchozí kód přidá trvalost do prostředku Redis pořízením snímků dat Valkey v zadaném intervalu a prahové hodnotě. interval je čas mezi exporty snímků a keysChangedThreshold je počet operací změn klíčů potřebných k aktivaci snímku. Další informace o perzistenci najdete v dokumentaci: RedisPersistence.

Hostování kontrol stavu integrace

Integrace hostování Redis automaticky přidá kontrolu stavu pro příslušný typ prostředku. Kontrola stavu ověřuje, že je server spuštěný a že se k němu dá navázat připojení.

Integrace hostování spoléhá na 📦 AspNetCore.HealthChecks.Redis balíček NuGet.

integrace Client

Pokud chcete začít s integrací klienta pro výstupní ukládání do mezipaměti .NET Aspire Stack Exchange Redis, nainstalujte balíček NuGet 📦Aspire.StackExchange.Redis.OutputCaching v projektu, který klienta využívá, tj. v projekt aplikace, která používá výstupního klienta ukládání do mezipaměti. Redis integrační výstup klienta pro ukládání do mezipaměti registruje služby potřebné pro povolení volání metod CacheOutput a použití atributu [OutputCache], které se spoléhají na Redis jako mechanismus ukládání do mezipaměti.

dotnet add package Aspire.StackExchange.Redis.OutputCaching

Přidání ukládání výstupu do mezipaměti

V souboru Program.cs projektu, který využívá klienta, zavolejte metodu rozšíření AddRedisOutputCache na libovolném IHostApplicationBuilder a zaregistrujte požadované služby pro ukládání výstupu do mezipaměti.

builder.AddRedisOutputCache(connectionName: "cache");

Spropitné

Parametr connectionName se musí shodovat s názvem použitým při přidávání prostředku Redis do hostitelského projektu aplikace. Další informace najdete v sekci Přidat Redis prostředek.

Spropitné

Parametr connectionName se musí shodovat s názvem použitým při přidávání prostředku Garnet do hostitelského projektu aplikace. Pro více informací viz Přidat zdroj Garnet.

Spropitné

Parametr connectionName se musí shodovat s názvem použitým při přidávání prostředku Valkey do hostitelského projektu aplikace. Další informace najdete v tématu Přidání prostředku Valkey.

Přidejte middleware do kanálu zpracování požadavků voláním UseOutputCache(IApplicationBuilder):

var app = builder.Build();

app.UseOutputCache();

Pro minimálních API aplikacínakonfigurujte koncový bod pro ukládání do mezipaměti buď voláním CacheOutput, nebo použitím OutputCacheAttribute, jak je znázorněno v následujících příkladech:

app.MapGet("/cached", () => "Hello world!")
   .CacheOutput();

app.MapGet(
    "/attribute",
    [OutputCache] () => "Hello world!");

U aplikací s kontrolery použijte atribut [OutputCache] pro metodu akce. U aplikací Razor Pages použijte atribut pro třídu Razor Page.

Konfigurace

Integrace ukládání výstupu .NET Aspire Stack Exchange Redis do mezipaměti nabízí několik možností konfigurace připojení Redis na základě požadavků a konvencí projektu.

Použijte připojovací řetězec

Při použití připojovacího řetězce z oddílu konfigurace ConnectionStrings můžete při volání AddRedisOutputCachezadat název připojovacího řetězce:

builder.AddRedisOutputCache(connectionName: "cache");

Připojovací řetěz se pak načte z oddílu konfigurace ConnectionStrings:

{
  "ConnectionStrings": {
    "cache": "localhost:6379"
  }
}

Další informace o formátování tohoto připojovacího řetězce najdete v dokumentaci ke konfiguraci Stack Exchange Redis.

Použití zprostředkovatelů konfigurace

Integrace ukládání výstupu do mezipaměti pro .NET Aspire Stack Exchange Redis podporuje Microsoft.Extensions.Configuration. Načte StackExchangeRedisSettings z konfigurace pomocí klíče Aspire:StackExchange:Redis. Příklad appsettings.json, který konfiguruje některé z možností:

{
  "Aspire": {
    "StackExchange": {
      "Redis": {
        "ConfigurationOptions": {
          "ConnectTimeout": 3000,
          "ConnectRetry": 2
        },
        "DisableHealthChecks": true,
        "DisableTracing": false
      }
    }
  }
}

Kompletní schéma integrace klienta pro ukládání výstupu do mezipaměti najdete v tématu Redis.

Použití vložených delegátů

Můžete také předat delegáta Action<StackExchangeRedisSettings> configurationSettings k nastavení některých nebo všech možností přímo v kódu, například k zakázání kontroly stavu přímo z kódu:

builder.AddRedisOutputCache(
    "cache",
    static settings => settings.DisableHealthChecks  = true);

Můžete také nastavit ConfigurationOptions pomocí parametru delegáta Action<ConfigurationOptions> configureOptions metody AddRedisOutputCache. Pokud například chcete nastavit časový limit připojení:

builder.AddRedisOutputCache(
    "cache",
    static settings => settings.ConnectTimeout = 3_000);

Client testy stavu integrace

Ve výchozím nastavení mají .NET.NET Aspireklientské integracekontroly stavu povoleny pro všechny služby. Podobně mnoho .NET.NET Aspirehostovacích integrací také povoluje koncové body kontroly stavu. Další informace najdete tady:

Integrace ukládání výstupů do mezipaměti pro .NET Aspire Stack Exchange Redis zpracovává následující:

  • Přidá kontrolu stavu, když je StackExchangeRedisSettings.DisableHealthChecksfalse, přičemž se pokusí připojit k instanci kontejneru.
  • Integruje se s HTTP koncovým bodem /health, který stanovuje, že všechny registrované kontroly stavu musí být úspěšné, aby byla aplikace považována za připravenou přijímat provoz.

Pozorovatelnost a telemetrie

.NET .NET Aspire integrace automaticky nastaví konfigurace protokolování, trasování a metrik, které se někdy označují jako pilíře pozorovatelnosti. Další informace o pozorovatelnosti a telemetrii integrace najdete v přehledu integrace .NET.NET Aspire. V závislosti na zálohovací službě můžou některé integrace podporovat pouze některé z těchto funkcí. Například některé integrace podporují protokolování a trasování, ale ne metriky. Funkce telemetrie je také možné zakázat pomocí technik uvedených v části Konfigurace.

Zaznamenávání

Integrace .NET Aspire Stack Exchange Redis ukládání výstupu do mezipaměti používá následující kategorie protokolů:

  • Aspire.StackExchange.Redis
  • Microsoft.AspNetCore.OutputCaching.StackExchangeRedis

Trasování

Integrace .NET Aspire Stack Exchange Redis ukládání výstupu do mezipaměti bude generovat následující aktivity trasování pomocí OpenTelemetry:

  • OpenTelemetry.Instrumentation.StackExchangeRedis

Metryky

Integrace .NET Aspire Stack Exchange Redis ukládání výstupu do mezipaměti aktuálně ve výchozím nastavení nepodporuje metriky kvůli omezením knihovny StackExchange.Redis.

Viz také

*: Redis je registrovaná ochranná známka společnosti Redis Ltd. Všechna práva v nich jsou vyhrazena pro Redis Ltd. Jakékoli použití společností Microsoft je určené pouze pro referenční účely a nezoznačuje žádné sponzorství, doporučení ani přidružení mezi Redis a Microsoftem. Návrat na horní?