.NET Aspire Redis * integrace distribuovaného ukládání do mezipaměti ®
zahrnuje:integrace hostingu a integrace Client
Naučte se používat .NET AspireRedis integraci distribuované mezipaměti. Knihovna Aspire.StackExchange.Redis.DistributedCaching
se používá k registraci poskytovatele IDistributedCache podporovaného Redisserver s obrazem kontejneru docker.io/library/redis
.
Naučte se používat .NET AspireRedis integraci distribuované mezipaměti. Knihovna
Naučte se používat .NET AspireRedis integraci distribuované mezipaměti. Knihovna Aspire.StackExchange.Redis.DistributedCaching
slouží k registraci poskytovatele IDistributedCache, který je podporovaný Valkeyserver, s kontejneru image docker.io/valkey/valkey
.
Integrace hostování
Integrace hostingu Redis modeluje prostředek Redis jako typ RedisResource. Přístup k tomuto typu a rozhraním API, které vám umožní přidat ho do 📦Aspire.HostingRedis balíčku NuGet v hostitelském projektu aplikace .
dotnet add package Aspire.Hosting.Redis
Další informace najdete v tématu dotnet add package nebo Manage package dependencies in .NET applications.
Přidej prostředek Redis
V projektu hostitele vaší aplikace zavolejte instanci builder
na AddRedis a přidejte 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. Do ExampleProject
se přidá odkaz na váš prostředek Redis (proměnná cache
).
Metoda WithReference nakonfiguruje připojení v ExampleProject
s názvem "cache"
. Pro více informací se podívejte na životní cyklus zdrojů kontejneru.
Spropitné
Pokud byste se raději připojili k existující instanci Redis, volejte místo toho AddConnectionString. Pro více informací viz Odkaz na stávající zdroje.
Přidání prostředku Redis pomocí Redis Insights
Pokud chcete do prostředku 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
Chcete-li nakonfigurovat port hostitele pro řetězec RedisInsightResource
, zavolejte API WithHostPort
a zadejte požadované číslo portu.
Přidání Redis prostředku pomocí Redis Commander
Chcete-li přidat Redis velitele do zdroje 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
.
Rada
Pokud chcete nakonfigurovat port hostitele pro řetězec RedisCommanderResource, zavolejte rozhraní API WithHostPort a zadejte požadované číslo portu.
Přidejte prostředek Redis s datovým svazkem
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 připojení vazby, najdete v dokumentaci Docker: Svazky.
Přidání zdroje Redis s připojením typu bind mount pro data
Chcete-li 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í. Vazby však umožňují přímý přístup a úpravy souborů v hostitelském systému, ideální pro vývoj a testování, kde jsou změny v reálném čase potřebné.
Připojení vazby dat využívají systém souborů hostitelského počítače k zachování Redis dat napříč restartováními kontejneru. Vazba dat je namontována na 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řidat Redis zdroj 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 k Redis: perzistence.
Integrace hostování Garnet modeluje prostředek Garnet ve formě typu GarnetResource. Přístup k tomuto typu a rozhraním API, které vám umožní přidat ho do 📦Aspire. Hostování.Garnet balíčku NuGet 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 aplikace zavolejte AddGarnet na instanci builder
, abyste přidali zdroj Garnetu:
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 tématu životní cyklus prostředků kontejneru.
Spropitné
Pokud byste se raději připojili k existující instanci Garnet, zavolejte místo toho AddConnectionString. Další informace naleznete v tématu Odkaz na existující prostředky.
Přidání prostředku Garnet s datovým objemem
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 vázanými svazky, najdete v dokumentaci Docker: Svazky.
Přidání prostředku Garnet s datovým bind mountem
Chcete-li přidat datovou vazbu k prostředku Garnet, použijte 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ý
Datové svazky připojení mají omezené funkce ve srovnání s svazky, které nabízejí lepší výkon, přenositelnost a zabezpečení, což je činí vhodnějšími pro produkční prostředí. Bind mounty 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řeba změny v reálném čase.
Připojení pro datová úložiště využívají systém souborů hostitelského počítače k uchování dat Garnet při restartování kontejneru. Připojení datového svazku je připojeno k cestě C:\Garnet\Data
ve systému Windows (nebo /Garnet/Data
na Unix) na hostitelském počítači v kontejneru Garnet. Další informace o připojeních datových vazeb najdete v dokumentaci Docker: Připojení vazby.
Přidání prostředku Garnet s persistencí
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 hostování Valkey modeluje prostředek Valkey jako typ ValkeyResource. Přístup k tomuto typu a k rozhraním API, která umožňují jeho přidání do 📦Aspire.Hosting.Valkey balíčku NuGet v projektu hostitele aplikace .
dotnet add package Aspire.Hosting.Valkey
Další informace najdete v tématu dotnet add package nebo Manage package dependencies in .NET applications.
Přidejte prostředek Valkey
V projektu hostitele aplikace zavolejte AddValkey pro 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á do hostitele aplikace obraz kontejneru, jak je znázorněno v předchozím příkladu s obrazem docker.io/valkey/valkey
, vytvoří na vašem místním počítači novou instanci Valkey. Do ExampleProject
se přidá odkaz na prostředek Valkey (proměnná cache
).
Metoda WithReference nakonfiguruje připojení v ExampleProject
s názvem "cache"
. Další informace najdete v sekci Životní cyklus prostředků kontejneru.
Spropitné
Pokud se raději připojíte k existující instanci Valkey, zavolejte místo toho AddConnectionString. Další informace naleznete v tématu Odkaz na existující prostředky.
Přidejte prostředek Valkey s datovým svazkem
Pokud chcete přidat datový svazek do prostředku Valkey, zavolejte metodu AddValkey prostředku 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č jsou upřednostňovány před vazbami, je uvedeno v dokumentaci Docker: Svazky.
Přidání prostředku Valkey s připojením datového vazebního bodu
Chcete-li přidat datovou vazbu 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ý
Připojení dat bind mají v porovnání se svazkyomezenou funkčnost, které nabízejí lepší výkon, přenositelnost a zabezpečení, což je činí vhodnějšími pro produkční prostředí. Připojení pomocí vazby umožňuje přímý přístup k souborům v hostitelském systému a jejich úpravy, což je ideální pro vývoj a testování, kde jsou potřebné změny v reálném čase.
Vazby datového připojení využívají systém souborů hostitelského počítače k uchování dat Valkey při restartování kontejneru. Datový svazek je připojen na cestu C:\Valkey\Data
ve Windows (nebo /Valkey/Data
na Unix) na hostitelském počítači v kontejneru Valkey. Další informace o datových vazbách najdete v dokumentaci Docker: Připojení vazeb.
Přidat prostředek Valkey s persistencí
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 trvalosti najdete v dokumentaci k Redis: Persistence.
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í.
Integrační hostování spoléhá na 📦 AspNetCore.HealthChecks a balíček NuGetRedis.
integrace Client
Pokud chcete začít s integrací distribuovaného ukládání do mezipaměti pro .NET AspireRedis, nainstalujte balíček NuGet 📦Aspire.StackExchange.Redis.DistributedCaching v projektu client, tj. v projektu aplikace, která využívá Redis distribuované ukládání do mezipaměti client.
dotnet add package Aspire.StackExchange.Redis.DistributedCaching
Přidání Redisclient
V souboru Program.cs vašeho projektu, který spotřebovává client, použijte rozšíření AddRedisDistributedCache pro registraci požadovaných služeb pro distribuovanou cache a přidejte IDistributedCache pro použití prostřednictvím kontejneru pro závislostní injektáž.
builder.AddRedisDistributedCache(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 naleznete v části Přidání Redis prostředků.
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. Další informace najdete v tématu přidání prostředků 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.
Potom můžete načíst instanci IDistributedCache
pomocí vkládání závislostí. Pokud například chcete načíst mezipaměť ze služby:
public class ExampleService(IDistributedCache cache)
{
// Use cache...
}
Další informace o injektáži závislostí najdete v tématu .NET injektáž závislostí.
Přidejte zakódované Redisclient
Mohou nastat situace, kdy chcete registrovat více instancí IDistributedCache
s různými názvy připojení. Pokud chcete zaregistrovat klíčované klienty Redis, zavolejte metodu AddKeyedRedisDistributedCache:
builder.AddKeyedRedisDistributedCache(name: "chat");
builder.AddKeyedRedisDistributedCache(name: "product");
Potom můžete získat instance IDistributedCache
pomocí dependency injection. Pokud například chcete načíst připojení z příkladové služby:
public class ExampleService(
[FromKeyedServices("chat")] IDistributedCache chatCache,
[FromKeyedServices("product")] IDistributedCache productCache)
{
// Use caches...
}
Další informace o službách s klíči najdete v části .NET injektáž závislostí: služby s klíči.
Konfigurace
Integrace .NET AspireRedis distribuované mezipaměti poskytuje 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í builder.AddRedisDistributedCache
zadat název připojovacího řetězce:
builder.AddRedisDistributedCache("cache");
A pak se připojovací řetězec načte z oddílu konfigurace ConnectionStrings
.
{
"ConnectionStrings": {
"cache": "localhost:6379"
}
}
Další informace o formátování tohoto řetězce připojení najdete v konfigurační dokumentaci 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í schéma integrace RedisclientJSON najdete v tématu Aspire. StackExchange.Redis/ConfigurationSchema.json.
Používejte vložené delegáty
Můžete také předat delegáta Action<StackExchangeRedisSettings>
k nastavení některých nebo všech možností na místě, například ke konfiguraci delegáta DisableTracing
.
builder.AddRedisDistributedCache(
"cache",
settings => settings.DisableTracing = true);
Můžete také nastavit ConfigurationOptions pomocí parametru delegáta Action<ConfigurationOptions> configureOptions
metody AddRedisDistributedCache
. Pokud například chcete nastavit časový limit připojení:
builder.AddRedisDistributedCache(
"cache",
static settings => settings.ConnectTimeout = 3_000);
Kontroly stavu
Ve výchozím nastavení integrace .NET.NET Aspire umožňují kontroly stavu pro všechny služby. Další informace naleznete v tématu .NETpřehled integrací.NET Aspire.
Integrace distribuované mezipaměti .NET AspireRedis zpracovává následující:
- Přidá kontrolu stavu
StackExchange.Redis
, pokusí se otevřít připojení a vyvolá chybu, když se to nepodaří. - Integruje se s HTTP koncovým bodem
/health
, který určuje, že všechny registrované zdravotní kontroly musí projít, aby byla aplikace považována za připravenou pro přijímání provozu.
Pozorovatelnost a telemetrie
.NET .NET Aspire integrace automaticky nastaví konfiguraci protokolování, trasování a metrik, které jsou někdy označovány 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 distribuovaného ukládání do mezipaměti .NET AspireRedis používá následující kategorie protokolů:
Aspire.StackExchange.Redis
Microsoft.Extensions.Caching.StackExchangeRedis
Trasování
Integrace distribuovaného ukládání do mezipaměti .NET AspireRedis bude pomocí OpenTelemetrygenerovat následující aktivity sledování:
OpenTelemetry.Instrumentation.StackExchangeRedis
Metriky
Integrace distribuované mezipaměti .NET AspireRedis momentálně ve výchozím nastavení metriky nepodporuje kvůli omezením knihovny StackExchange.Redis
.
integrace hostování AzureRedis
Pokud chcete nasadit prostředky Redis do Azure, nainstalujte balíček NuGet 📦Aspire.Hosting.Azure.Redis:
dotnet add package Aspire.Hosting.Azure.Redis
Přidání prostředku 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, aby byl nasazen jako Azure Cache for Redis.
Důležitý
Ve výchozím nastavení AddAzureRedis
konfiguruje ověřování Microsoft Entra ID. To vyžaduje změny aplikací, které se potřebují připojit k těmto prostředkům, například client integrace.
Přidejte Azure Cache for Redis distribuované client
Ve výchozím nastavení se při volání AddAzureRedis
v integraci hostování Redis nakonfiguruje 📦 Microsoft.Azure.StackExchangeRedis balíček NuGet pro povolení ověřování:
dotnet add package Microsoft.Azure.StackExchangeRedis
Připojení Redis může být využíváno 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.AddRedisDistributedCache("cache", configureOptions: options =>
{
options.Defaults = configurationOptions.Defaults;
});
Další informace najdete v Microsoftu.Azure. Úložiště StackExchangeRedis.
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í?