Sdílet prostřednictvím


.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 umožňuje připojit se k existujícím instancím nebo vytvářet nové instance z pomocíimage kontejneru .

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 umožňuje připojit se k existujícím instancím Valkey nebo vytvářet nové instance z pomocíimage kontejneru .

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 . Hostování. balíček NuGet v projektu hostitele aplikace .

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 ExampleProjectse 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.

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.DisableHealthChecksfalse, 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í:

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í?