.NET Aspire Redis®* integrace
zahrnuje:integrace hostování a Client integrace
Redis je nejrychlejší datová platforma pro ukládání do mezipaměti, vektorové vyhledávání a databáze NoSQL. Integrace
Garnet je vysoce výkonné úložiště mezipaměti od společnosti Microsoft Research a odpovídá protokolu serializace Redis (RESP). Integrace .NET AspireRedis umožňuje připojit se k existujícím instancím Garnet nebo vytvářet nové instance z .NET pomocí image kontejneru ghcr.io/microsoft/garnet
.
Valkey je Redis fork a splňuje Redis serializační protokol (RESP). Jedná se o vysoce výkonné úložiště dat klíč/hodnota, které podporuje celou řadu úloh, jako je ukládání do mezipaměti, fronty zpráv a může fungovat jako primární databáze. Integrace
Integrace hostování
Hostování integrace 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
dotnet add package Aspire.Hosting.Redis
Další informace najdete v tématu 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 AddRedis na instanci builder
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"
. Další informace najdete v tématu ž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 k existujícím zdrojům.
Přidání prostředku Redis pomocí Redis Insights
Přidat Redis Insights do prostředku Redis můžete zavoláním metody 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 rozhraní API WithHostPort
a zadejte požadované číslo portu.
Přidání Redis prostředku pomocí Redis Commander
K přidání 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, zavolejte rozhraní API WithHostPort a uveďte požadované číslo portu.
Přidání prostředku 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 objemech dat a podrobnosti o tom, proč jsou upřednostňovány před připojeními svazků , najdete v dokumentaci Docker: Svazky.
Přidat prostředek Redis s připojením svazku dat
Pokud chcete přidat datovou vazbu 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í. Připojení bind mount však umožňují přímý přístup a úpravu souborů na hostitelském systému, což je ideální pro vývoj a testování, kdy jsou potřebné změny v reálném čase.
Připojení datového úložiště využívají systém souborů hostitelského počítače pro zachování dat Redis při opakovaných restartech kontejneru. Připojení vazby dat je připojeno k C:\Redis\Data
ve Windows (nebo /Redis/Data
na Unix) v 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í Redis prostředku s trvalostí
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 persistenci najdete v dokumentaci k Redis: Persistence.
Garnet hosting integration modeluje prostředek Garnet jako typ GarnetResource. Pro přístup k tomuto typu a 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
Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčků v .NET aplikacích.
Přidejte prostředek Garnet
V projektu hostitele 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. Odkaz na váš prostředek Garnet (proměnná cache
) je přidán do ExampleProject
.
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. Pro další informace se podívejte na 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 vázanými připojeními, najdete v dokumentaci Docker: Svazky.
Přidat zdroj Garnet s připojením pro mapování dat.
Pokud chcete přidat datovou vazbu jako přípojný bod 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í typu bind pro data mají v porovnání se svazkyomezenou funkčnost, a ty nabízejí lepší výkon, přenositelnost a zabezpečení, což je činí vhodnějšími pro produkční prostředí. Mountování pomocí vazby umožňuje 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á připojení využívají souborový systém hostitelského počítače k zajištění trvalého uložení dat Garnet při restartu kontejneru. Vazba dat je připojena k cestě C:\Garnet\Data
ve 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řidejte prostředek 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 persistenci najdete v dokumentaci k Redis: Persistence.
Integrace hostingu Valkey modeluje prostředek Valkey jako typ ValkeyResource. Chcete-li získat přístup k tomuto typu a rozhraním API, které vám umožní ho přidat 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 aplikacích .NET.
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á obrázek kontejneru do hostitele aplikace, jak je znázorněno v předchozím příkladu s obrázkem docker.io/valkey/valkey
, vytvoří na místním počítači novou instanci Valkey. Odkaz na prostředek Valkey (proměnná cache
) je přidán do ExampleProject
.
Metoda WithReference nakonfiguruje připojení v ExampleProject
s názvem "cache"
. Další informace viz životní cyklus kontejnerových prostředků.
Rada
Pokud se raději připojíte k existující instanci Valkey, zavolejte místo toho AddConnectionString. Další informace viz Odkaz na existující prostředky.
Přidání prostředku Valkey s datovým svazkem
Pokud chcete přidat datový svazek do prostředku Valkey, použijte metodu AddValkey na 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č se upřednostňují před připojení vazby, najdete v dokumentaci Docker: Svazky.
Přidání prostředku Valkey s přímým přiřazením dat.
Chcete-li přidat datovou propust ke zdroji 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í 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í. Bind mounts 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í, kdy jsou potřebné změny v reálném čase.
Připojení vazby dat spoléhají na systém souborů hostitelského počítače k zachování dat Valkey v rámci restartování kontejneru. Datový svazek je připojen k cestě C:\Valkey\Data
na systému Windows (nebo /Valkey/Data
na Unix) na hostitelském počítači v kontejneru Valkey. Další informace o datových bind mountech najdete v dokumentaci Docker: Bind mounty.
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 perzistenci najdete v dokumentaci k Redis: perzistence.
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 zařízení server spuštěné a že se k němu dá navázat připojení.
Integrace hostování spoléhá na balíček NuGet 📦 AspNetCore.HealthChecks.Redis.
integrace Client
Pokud chcete začít s integrací .NET AspireRedisclient Stack Exchange, nainstalujte 📦Aspire. StackExchange.Redis balíček NuGet v projektu client, tedy v projektu aplikace, která používá Redisclient. Integrace Redisclient zaregistruje instanci IConnectionMultiplexer, kterou můžete použít k interakci s Redis.
-
rozhraní příkazového řádku
- PackageReference
dotnet add package Aspire.StackExchange.Redis
Přidejte Redisclient
V souboru Program.cs projektu, který využívá client, zavolejte metodu rozšíření AddRedisClient na libovolném IHostApplicationBuilder a zaregistrujte IConnectionMultiplexer
pro použití prostřednictvím kontejneru injektáže závislostí. Metoda přebírá parametr názvu připojení.
builder.AddRedisClient(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 části 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. Další informace naleznete v tématu Přidat zdroj Garnet.
Rada
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 IConnection
pomocí vkládání závislostí. Pokud například chcete načíst připojení z ukázkové služby:
public class ExampleService(IConnectionMultiplexer connectionMux)
{
// Use connection multiplexer...
}
Další informace o injektáži závislostí najdete v tématu .NET injektáž závislostí.
Přidejte Redisclient s přiřazenými klíči
Může nastat situace, kdy chcete zaregistrovat více instancí IConnectionMultiplexer
s různými názvy připojení. Pokud chcete zaregistrovat klíčované klienty Redis, zavolejte metodu AddKeyedRedisClient:
builder.AddKeyedRedisClient(name: "chat");
builder.AddKeyedRedisClient(name: "queue");
Potom můžete načíst instance IConnectionMultiplexer
pomocí injekce závislostí. Pokud například chcete načíst připojení z příkladové služby:
public class ExampleService(
[FromKeyedServices("chat")] IConnectionMultiplexer chatConnectionMux,
[FromKeyedServices("queue")] IConnectionMultiplexer queueConnectionMux)
{
// Use connections...
}
Další informace o pojmenovaných službách naleznete v části .NET Injektáž závislostí: Pojmenované služby.
Konfigurace
Integrace .NET Aspire Stack Exchange Redisclient 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í AddRediszadat název připojovacího řetězce:
builder.AddRedis("cache");
Při použití připojovacího řetězce z oddílu konfigurace ConnectionStrings
můžete při volání AddGarnetzadat název připojovacího řetězce:
builder.AddGarnet("cache");
Při použití připojovacího řetězce z oddílu konfigurace ConnectionStrings
můžete při volání AddValkeyzadat název připojovacího řetězce:
builder.AddValkey("cache");
Připojovací řetězec bude poté načten z konfiguračního oddílu ConnectionStrings
.
{
"ConnectionStrings": {
"cache": "localhost:6379"
}
}
Další informace o tom, jak naformátovat tento připojovací řetězec, 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í schéma integrace RedisclientJSON najdete viz Aspire.StackExchange.Redis/ConfigurationSchema.json.
Použití vložených delegátů
Můžete také předat delegáta Action<StackExchangeRedisSettings>
k nastavení některých nebo všech možností přímo; například nakonfigurovat DisableTracing
.
builder.AddRedisClient(
"cache",
static settings => settings.DisableTracing = true);
Client kontroly stavu integrace
Ve výchozím nastavení integrace .NET.NET Aspire umožňují kontroly stavu pro všechny služby. Další informace naleznete v tématu přehled integrací .NET.NET Aspire.
Integrace .NET Aspire Stack Exchange Redis zpracovává následující:
- Přidá kontrolu stavu, když je StackExchangeRedisSettings.DisableHealthChecks
false
, která se pokusí připojit k instanci kontejneru. - Integruje se s koncovým bodem
/health
HTTP, který stanovuje, že všechny registrované kontroly stavu musí být úspěšně dokončeny, aby byla aplikace považována za připravenou k přijímání provozu.
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 backingové službě můžou některé integrace podporovat jenom 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 používá následující kategorie protokolů:
Aspire.StackExchange.Redis
Trasování
Integrace .NET Aspire Stack Exchange Redis bude generovat následující aktivity trasování pomocí OpenTelemetry:
OpenTelemetry.Instrumentation.StackExchangeRedis
Metryky
Integrace .NET Aspire Stack Exchange Redis aktuálně nepodporuje metriky ve výchozím nastavení kvůli omezením knihovny StackExchange.Redis
.
integrace hostování AzureRedis
Pokud chcete nasadit prostředky Redis do Azure, nainstalujte 📦Aspire.Hosting.Azure.Redis balíček NuGet:
dotnet add package Aspire.Hosting.Azure.Redis
Přidejte prostředek Azure Cache for Redisserver
Po instalaci balíčku hostování .NET AspireAzureRedis volejte rozšiřující metodu 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 pro 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řidejte 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í:
-
rozhraní příkazového řádku
- PackageReference
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.AddRedisClient("cache", configureOptions: options =>
{
options.Defaults = configurationOptions.Defaults;
});
Další informace najdete ve službě Microsoft.Azurev repozitáři 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í?