® Integrace .NET AspireRedis* ukládání výstupu do mezipaměti
zahrnuje:integraci hostování a integraci Client
Naučte se používat integraci ukládání výstupu do mezipaměti .NET AspireRedis. Integrace
Naučte se používat integraci ukládání výstupu do mezipaměti .NET AspireRedis. Integrace
Naučte se používat integraci ukládání výstupu do mezipaměti pro .NET AspireRedis. Integrace
Integrace hostování
Modely integrace hostování Redis reprezentují prostředek Redis jako typ RedisResource. Pro přístup k tomuto typu a rozhraním API, která vám umožní přidat jej do balíčku NuGet 📦Aspire.Hosting.Redis v projektu hostitele aplikace .
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 aplikace zavolejte AddRedis na instanci builder
a přidejte Redis prostředek:
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 Redis Insights, zavolejte metodu WithRedisInsight
.
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é
Chcete-li nakonfigurovat port hostitele pro RedisCommanderResource chain, zavolejte API WithHostPort a poskytněte požadované číslo portu.
Přidání Redis zdroje 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 datových svazcích a podrobnosti o tom, proč se upřednostňují před bind mounts, si přečtěte v dokumentaci Docker: Svazky.
Přidání prostředku Redis s připojenou datovou vazbou
Pokud chcete přidat připojení vazby dat 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í. Vazebné 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í s potřebou změn 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 připojení je připojen na cestu C:\Redis\Data
ve 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 trvalosti najdete v dokumentaci k Redis: trvalost.
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 je do balíčku NuGet 📦Aspire.Hostování.Garnet v projektu hostitele aplikace .
dotnet add package Aspire.Hosting.Garnet
Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčků v aplikacích .NET.
Přidání prostředku 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. Do ExampleProject
se přidá odkaz na váš prostředek Garnet (proměnná cache
).
Metoda WithReference nakonfiguruje připojení v ExampleProject
s názvem "cache"
. Další informace najdete v sekci životní cyklus zdroje kontejneru.
Spropitné
Pokud byste se raději připojili k existující instanci Garnet, zavolejte místo toho AddConnectionString. Další informace naleznete pod Odkaz na existující prostředky.
Přidání zdroje 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 datových svazcích a podrobnosti o tom, proč se upřednostňují před bind mounty, viz dokumentace Docker: Svazky.
Přidejte prostředek Garnet s připojením pro vazbu dat
Pokud chcete přidat připojení datové vazby 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í dat pomocí vazby mají omezenou funkcionalitu ve srovnání se svazky, které nabízejí lepší výkon, přenositelnost a zabezpečení, což je činí vhodnějšími pro produkční prostředí. Připojení typu bind však umožňují přímý přístup a úpravy souborů na hostitelském systému, což je ideální pro vývoj a testování, kde jsou potřebné 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. Připojení datového svazku je namontováno 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 svazcích typu bind najdete v dokumentaci Docker: Svazky typu bind.
Přidání zdroje 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 k Redis: perzistence.
Integrační model Valkey modeluje prostředek 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
Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčků v .NET aplikacích.
Přidejte prostředek Valkey
V projektu hostitele aplikace zavolejte AddValkey v instanci builder
a přidejte prostředek 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 ExampleProject
se přidá odkaz na zdroj Valkey (proměnná cache
).
Metoda WithReference nakonfiguruje připojení v ExampleProject
s názvem "cache"
. Pro více informací viz životní cyklus kontejneru.
Spropitné
Pokud se raději připojíte k existující instanci Valkey, zavolejte místo toho AddConnectionString. Pro více informací si projděte Podívejte se na dostupné zdroje.
Přidání prostředku Valkey s datovým svazkem
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 datových svazcích a podrobnosti o tom, proč se upřednostňují před bind mounty, najdete 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 zavolejte 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ý
Datové bind mounts mají omezenou funkčnost ve srovnání se svazky, které nabízejí lepší výkon, přenositelnost a zabezpečení, díky čemuž jsou vhodnější pro produkční prostředí. Připojení vazby však umožňují přímý přístup a úpravy souborů v hostitelském systému, které jsou ideální pro vývoj a testování, kde jsou potřebné 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 k cestě C:\Valkey\Data
ve Windows (nebo /Valkey/Data
na Unix) na hostitelském počítači v kontejneru Valkey. Další informace o datových připojeních najdete v dokumentaci Docker: Připojení datových vazeb.
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 přetrvávání najdete v dokumentaci k Redis: Přetrvávání.
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 spuštěná server 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 používat .NET Aspire Stack Exchange Redis ukládání výstupu do mezipaměti client integrace, nainstalujte 📦Aspire. StackExchange.Redis. OutputCaching balíček NuGet v projektu clientspotřebovávání, tj. projekt aplikace, která používá výstupní ukládání do mezipaměti client.
dotnet add package Aspire.StackExchange.Redis.OutputCaching
Přidání ukládání výstupu do mezipaměti
V souboru Program.cs vašeho projektu, který využívá client, použijte metodu rozšíření AddRedisOutputCache na jakémkoli IHostApplicationBuilder a zaregistrujte tak 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.
Rada
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 .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": {
"ConnectionString": "localhost:6379",
"DisableHealthChecks": true,
"DisableTracing": false
}
}
}
}
Kompletní Redisclient schéma integrace JSON najdete v AspireStackExchangeRedis/ConfigurationSchemajson.
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);
Kontroly stavu
Integrace .NET.NET Aspire ve výchozím nastavení umožňují kontroly stavu pro všechny služby. Pro více informací viz přehled integrací .NET.NET Aspire.
Integrace zachytávání výstupu z .NET Aspire Stack Exchange Redis do mezipaměti zpracovává následující:
- Přidá kontrolu stavu
StackExchange.Redis
, pokusí se otevřít připojení a vyvolá výjimku, když se to nepodaří. - 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.
Protokolová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
.
integrace hostování AzureRedis
Pokud chcete nasadit prostředky Redis do Azure, nainstalujte balíček 📦Aspire.Hosting.Azure.Redis NuGet.
dotnet add package Aspire.Hosting.Azure.Redis
Přidejte prostředek Azure Cache for Redisserver
Po instalaci balíčku .NET Aspire hostování AzureRedis volejte metodu rozšíření AddAzureRedis
v hostitelském projektu aplikace:
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddAzureRedis("azcache")
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(cache);
Předchozí volání AddAzureRedis
nakonfiguruje prostředek Redisserver k nasazení jako Azure Cache for Redis.
Důležitý
Ve výchozím nastavení AddAzureRedis
konfiguruje ověřování ID Microsoft Entra. To vyžaduje změny aplikací, které se potřebují připojit k těmto prostředkům, například client integrace.
Přidat výstup Azure Cache for Redisclient
Ve výchozím nastavení se při volání AddAzureRedis
v integraci hostování Redis nakonfiguruje 📦 Microsoftu.Azure. StackExchangeRedis balíčku NuGet pro povolení ověřování:
dotnet add package Microsoft.Azure.StackExchangeRedis
Připojení Redis lze využívat pomocí integrace client a Microsoft.Azure.StackExchangeRedis
. Zvažte následující konfigurační kód:
var azureOptionsProvider = new AzureOptionsProvider();
var configurationOptions = ConfigurationOptions.Parse(
builder.Configuration.GetConnectionString("cache") ??
throw new InvalidOperationException("Could not find a 'cache' connection string."));
if (configurationOptions.EndPoints.Any(azureOptionsProvider.IsMatch))
{
await configurationOptions.ConfigureForAzureWithTokenCredentialAsync(
new DefaultAzureCredential());
}
builder.AddRedisOutputCache("cache", configureOptions: options =>
{
options.Defaults = configurationOptions.Defaults;
});
Další informace najdete v MicrosoftAzure.StackExchangeRedis repozitáři.
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í?