Freigeben über


.NET Aspire Redis * Integration für verteiltes Caching

umfasst:Hostingintegration und Client Integration

Erfahren Sie, wie Sie die .NET Aspire- undRedis-verteilte Caching-Integration verwenden. Die Aspire.StackExchange.Redis.DistributedCaching-Bibliothek wird verwendet, um einen IDistributedCache Anbieter zu registrieren, der von einem Redisserver mit dem docker.io/library/redis Containerimageunterstützt wird.

Erfahren Sie, wie Sie die verteilte Caching-Integration von .NET AspireRedis verwenden. Die Aspire.StackExchange.Redis.DistributedCaching-Bibliothek wird verwendet, um einen IDistributedCache Anbieter zu registrieren, der von einem Garnet-server mit dem ghcr.io/microsoft/garnet Containerimageunterstützt wird.

Erfahren Sie, wie Sie die .NET AspireRedis Integration der verteilten Caches verwenden. Die Aspire.StackExchange.Redis.DistributedCaching-Bibliothek wird verwendet, um einen IDistributedCache Anbieter zu registrieren, der von einem Valkey-server mit dem docker.io/valkey/valkey Containerimageunterstützt wird.

Hosting-Integration

Die Redis Hostintegration modelliert eine Redis Ressource als RedisResource Typ. Um auf diesen Typ und die APIs zuzugreifen, mit denen Sie ihn zu Ihrem 📦Aspire.Hosting.Redis NuGet-Paket im Projekt mit dem App-Host hinzufügen können.

dotnet add package Aspire.Hosting.Redis

Weitere Informationen finden Sie unter dotnet add package oder Verwalten von Paketabhängigkeiten in .NET-Anwendungen.

Hinzufügen einer Redis-Ressource

Rufen Sie in Ihrem App-Host-Projekt AddRedis in der builder-Instanz auf, um eine Redis-Ressource hinzuzufügen.

var builder = DistributedApplication.CreateBuilder(args);

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

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

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

Wenn .NET.NET Aspire dem App-Host ein Containerimage hinzufügt, wie im vorherigen Beispiel mit dem docker.io/Redis/Redis-Image gezeigt, wird eine neue Redis Instanz auf dem lokalen Computer erstellt. Ein Verweis auf Ihre Redis Ressource (die cache Variable) wird dem ExampleProjecthinzugefügt.

Die WithReference-Methode konfiguriert eine Verbindung im ExampleProject namens "cache". Weitere Informationen finden Sie unter Lebenszyklus der Containerressource.

Trinkgeld

Wenn Sie lieber eine Verbindung mit einer vorhandenen Redis Instanz herstellen möchten, rufen Sie stattdessen AddConnectionString auf. Weitere Informationen finden Sie unter Referenzieren vorhandener Ressourcen.

Ressource Redis mit Einblicken aus Redis hinzufügen

Rufen Sie die WithRedisInsight-Methode auf, um die Redis Insights- zur Ressource Redis hinzuzufügen.

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 ist eine kostenlose grafische Oberfläche zum Analysieren von Redis Daten auf allen Betriebssystemen und Redis Bereitstellungen mit Hilfe unseres KI-Assistenten, Redis Copilot. .NET .NET Aspire fügt dem App-Host, der die Commander-App ausführt, ein weiteres Container-Image docker.io/redis/redisinsight hinzu.

Anmerkung

Um den Hostport für die RedisInsightResource-Kette zu konfigurieren, rufen Sie die WithHostPort-API auf und geben Sie die gewünschte Portnummer an.

Ressource Redis mit Commander Redis hinzufügen

Rufen Sie zum Hinzufügen des Redis Commander zur Ressource Redis die WithRedisCommander-Methode auf:

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 ist eine Node.js Webanwendung, die zum Anzeigen, Bearbeiten und Verwalten einer Redis Datenbank verwendet wird. .NET .NET Aspire fügt dem App-Host, auf dem die Commander-App läuft, ein weiteres Containerimage docker.io/rediscommander/redis-commander hinzu.

Trinkgeld

Um den Host-Port für die RedisCommanderResource-Kette zu konfigurieren, muss ein Aufruf an die WithHostPort-API erfolgen und die gewünschte Portnummer bereitgestellt werden.

Redis Ressource mit Datenvolumen hinzufügen

Rufen Sie die WithDataVolume-Methode für die Redis-Ressource auf, um der Redis-Ressource ein Datenvolume hinzuzufügen:

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

Das Datenvolumen wird verwendet, um die Redis Daten außerhalb des Lebenszyklus des Containers zu speichern. Das Datenvolume wird am /data Pfad im container Redis bereitgestellt, und wenn kein name Parameter angegeben wird, wird der Name zufällig generiert. Weitere Informationen zu Datenvolumes und Details dazu, warum sie gegenüber Bind-Mountsbevorzugt werden, finden Sie in der Docker-Dokumentation: Volumes.

Füge Redis-Ressource mit Datenbindemontage hinzu

Rufen Sie die WithDataBindMount-Methode auf, um der Redis-Ressource ein Datenbindungs-Mount hinzuzufügen.

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

Wichtig

Daten--Bind-Mounts haben im Vergleich zu Volumeseine eingeschränkte Funktionalität. Volumes bieten eine bessere Leistung, Portabilität und Sicherheit, was sie für Produktionsumgebungen besser geeignet macht. Bind-Mounts ermöglichen jedoch direkten Zugriff auf und Änderungen an Dateien auf dem Hostsystem, ideal für Entwicklung und Tests, bei denen Echtzeitänderungen nötig sind.

Datenbindungs-Bereitstellungen basieren auf dem Dateisystem des Hostcomputers, um die Redis Daten über Containerneustarts hinweg beizubehalten. Die Datenbindungsbereitstellung wird auf dem C:\Redis\Data unter Windows (oder /Redis/Data auf Unix) Pfad auf dem Hostcomputer im container Redis bereitgestellt. Weitere Informationen zu Datenbindungs-Bereitstellungen finden Sie unter Docker Docs: Binden von Bereitstellungen.

Fügen Sie die Redis-Ressource mit Persistenz hinzu.

Rufen Sie zum Hinzufügen der Persistenz zur Redis Ressource die WithPersistence-Methode entweder mit dem Datenvolume oder dem Datenbindungs-Mount auf:

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

Der vorangehende Code fügt der Redis Ressource Persistenz hinzu, indem Momentaufnahmen der Redis Daten in einem angegebenen Intervall und Schwellenwert erstellt werden. Die interval ist die Zeit zwischen Momentaufnahmenexporten und der keysChangedThreshold die Anzahl der Schlüsseländerungsvorgänge, die zum Auslösen einer Momentaufnahme erforderlich sind. Weitere Informationen zur Persistenz finden Sie unter Redis Docs: Persistenz.

Die Garnet-Hostingintegration modelliert eine Garnet-Ressource als den GarnetResource-Typ. Um auf diesen Typ und die APIs zuzugreifen, mit denen Sie ihn zu Ihrem 📦Aspire.Hosting.Garnet NuGet-Paket im App-Host-Projekt hinzufügen können.

dotnet add package Aspire.Hosting.Garnet

Weitere Informationen finden Sie unter dotnet add package oder Verwalten der Paketabhängigkeiten in .NET-Anwendungen.

Garnet-Ressource hinzufügen

Rufen Sie in Ihrem App-Hostprojekt AddGarnet in der builder Instanz auf, um eine Garnet-Ressource hinzuzufügen:

var builder = DistributedApplication.CreateBuilder(args);

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

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

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

Wenn .NET.NET Aspire dem App-Host ein Containerimage hinzufügt, wie im obigen Beispiel mit dem ghcr.io/microsoft/garnet-Image gezeigt, wird eine neue Garnet-Instanz auf dem lokalen Computer erstellt. Ein Verweis auf Ihre Garnet-Ressource (cache-Variable) wird zu ExampleProjecthinzugefügt.

Die WithReference-Methode konfiguriert eine Verbindung im ExampleProject namens "cache". Weitere Informationen finden Sie im Abschnitt Containerressourcenlebenszyklus.

Tipp

Wenn Sie lieber eine Verbindung mit einer vorhandenen Garnet-Instanz herstellen möchten, rufen Sie stattdessen AddConnectionString auf. Weitere Informationen finden Sie unter Referenzieren vorhandener Ressourcen.

Hinzufügen einer Garnet-Ressource mit Datenvolume

Um der Garnet-Ressource ein Datenvolume hinzuzufügen, rufen Sie die AddGarnet-Methode für die Garnet-Ressource auf:

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

Das Datenvolume wird verwendet, um die Garnet-Daten außerhalb des Lebenszyklus des Containers zu speichern. Das Datenvolumen wird am /data-Pfad im Garnet-Container bereitgestellt, und wenn kein name-Parameter angegeben wird, wird der Name zufällig generiert. Weitere Informationen zu Daten-Volumes und Details dazu, warum sie gegenüber Bind-Mountsbevorzugt werden, finden Sie in der Docker-Dokumentation: Volumes.

Hinzufügen einer Garnet-Ressource mit Datenbindungs-Bereitstellung

Rufen Sie zum Hinzufügen einer Datenbindungs-Bereitstellung zur Garnet-Ressource die WithDataBindMount-Methode auf:

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

Wichtig

Daten Binden von Bereitstellungen mit eingeschränkter Funktionalität im Vergleich zu Volumes, die eine bessere Leistung, Portabilität und Sicherheit bieten, wodurch sie für Produktionsumgebungen besser geeignet sind. Bind-Einbindungen ermöglichen jedoch direkten Zugriff und die Bearbeitung von Dateien auf dem Hostsystem, was ideal für Entwicklungs- und Testumgebungen ist, in denen Echtzeitänderungen erforderlich sind.

Datenbindungs-Bereitstellungen basieren auf dem Dateisystem des Hostcomputers, um die Garnet-Daten über Containerneustarts hinweg zu speichern. Die Daten-Bind-Mount wird im Garnet-Container auf dem Pfad C:\Garnet\Data unter Windows (oder /Garnet/Data auf Unix) des Hostcomputers bereitgestellt. Weitere Informationen zu Daten-Bind-Mounts finden Sie in der Docker Dokumentation: Bind-Mounts.

Garnet-Ressource mit Persistenz hinzufügen

Um der Garnet-Ressource Persistenz hinzuzufügen, rufen Sie die WithPersistence-Methode entweder mit dem Datenvolume oder dem Datenbindungs-Mount auf:

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

Der vorangehende Code fügt der Redis Ressource Persistenz hinzu, indem Momentaufnahmen der Garnet-Daten in einem angegebenen Intervall und Schwellenwert erstellt werden. Die interval ist der Zeitraum zwischen Exporten von Momentaufnahmen. Die keysChangedThreshold ist die Anzahl der Schlüsseländerungen, die erforderlich sind, um eine Momentaufnahme auszulösen. Weitere Informationen zur Persistenz finden Sie in der Dokumentation Redis: Persistenz.

Die Valkey-Hosting-Integration modelliert eine Valkey-Ressource als Typ ValkeyResource. Um auf diesen Typ und die dazugehörigen APIs zuzugreifen, mit denen Sie ihn zu Ihrem 📦Aspire.Hosting.Valkey NuGet-Paket im App-Host Projekt hinzufügen können.

dotnet add package Aspire.Hosting.Valkey

Weitere Informationen finden Sie unter dotnet add package oder Verwalten von Paketabhängigkeiten in .NET-Anwendungen.

Valkey-Ressource hinzufügen

Rufen Sie in Ihrem App-Host-Projekt die Methode AddValkey auf der builder-Instanz auf, um eine Valkey-Ressource hinzuzufügen.

var builder = DistributedApplication.CreateBuilder(args);

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

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

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

Wenn .NET.NET Aspire dem App-Host ein Containerimage hinzufügt, wie im vorherigen Beispiel mit dem Image docker.io/valkey/valkey gezeigt wird, wird eine neue Valkey-Instanz auf dem lokalen Computer erstellt. Ein Verweis auf die Valkey-Ressource (die cache Variable) wird dem ExampleProjecthinzugefügt.

Die WithReference-Methode konfiguriert eine Verbindung im ExampleProject namens "cache". Weitere Informationen finden Sie unter Lebenszyklus der Containerressource.

Trinkgeld

Wenn Sie lieber eine Verbindung mit einer vorhandenen Valkey-Instanz herstellen möchten, rufen Sie stattdessen AddConnectionString auf. Weitere Informationen finden Sie unter Referenzieren vorhandener Ressourcen.

Hinzufügen einer Valkey-Ressource mit Datenvolume

Um der Valkey-Ressource ein Datenvolume hinzuzufügen, rufen Sie die AddValkey-Methode für die Valkey-Ressource auf:

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

Das Datenvolume wird verwendet, um die Valkey-Daten außerhalb des Lebenszyklus des Containers zu speichern. Das Datenvolumen wird am Pfad /data im Valkey-Container eingehängt und wenn kein Parameter name angegeben ist, wird der Name zufällig generiert. Weitere Informationen zu Datenvolumes und Details dazu, warum sie gegenüber Bind-Einbindungenbevorzugt werden, finden Sie unter der Docker-Dokumentation: Volumes.

Hinzufügen einer Valkey-Ressource mit Datenbindungs-Bereitstellung

Rufen Sie die WithDataBindMount-Methode auf, um der Valkey-Ressource eine Datenbindungs-Bereitstellung hinzuzufügen:

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

Wichtig

Datenträger Bind-Mounts haben eingeschränkte Funktionalität im Vergleich zu Volumes, die eine bessere Leistung, Portabilität und Sicherheit bieten und daher besser für Produktionsumgebungen geeignet sind. Bind-Mounts ermöglichen jedoch direkten Zugriff auf und Änderungsmöglichkeiten von Dateien auf dem Hostsystem, ideal für die Entwicklung und das Testen, bei denen Änderungen in Echtzeit erforderlich sind.

Datenbindungs-Bereitstellungen basieren auf dem Dateisystem des Hostcomputers, um die Valkey-Daten über Containerneustarts hinweg beizubehalten. Die Datenbindungseinbindung wird unter Windows auf C:\Valkey\Data (oder auf /Valkey/Data auf Unix) auf dem Hostcomputer im Valkey-Container bereitgestellt. Weitere Informationen zu Datenbindemounts finden Sie in der Docker-Dokumentation: Bindemounts.

Hinzufügen einer Valkey-Ressource mit Persistenz

Rufen Sie zum Hinzufügen der Persistenz zur Valkey-Ressource die WithPersistence-Methode entweder mit dem Datenvolume oder dem Datenbindungs-Mount auf:

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

Der vorhergehende Code fügt der Redis-Ressource Persistenz hinzu, indem Momentaufnahmen der Valkey-Daten zu einem angegebenen Intervall und Schwellenwert erstellt werden. Das interval ist die Zeit zwischen Momentaufnahmenexporten, und das keysChangedThreshold ist die Anzahl der Schlüsseländerungsvorgänge, die erforderlich sind, um eine Momentaufnahme auszulösen. Weitere Informationen zur Persistenz finden Sie unter Redis Docs: Persistenz.

Durchführung von Integritätsprüfungen für Integrationen

Die Redis Hostingintegration fügt automatisch eine Integritätsprüfung für den entsprechenden Ressourcentyp hinzu. Die Überprüfung prüft, ob server läuft und ob eine Verbindung hergestellt werden kann.

Die Hostingintegration basiert auf dem 📦 AspNetCore.HealthChecks-,Redis NuGet-Paket.

Client Integration

Um mit der Integration des verteilten Caching von .NET AspireRedis zu beginnen, installieren Sie das 📦Aspire.StackExchange.Redis.DistributedCaching NuGet-Paket im Projekt, das clientverwendet, d. h. das Projekt der Anwendung, die das verteilte Caching Redis verwendet, client.

dotnet add package Aspire.StackExchange.Redis.DistributedCaching

Hinzufügen von Redisclient

Rufen Sie in der Program.cs-Datei Ihres client-verbrauchenden Projekts die AddRedisDistributedCache-Erweiterung auf, um die erforderlichen Dienste für das verteilte Caching zu registrieren und einen IDistributedCache zur Verwendung über den Dependency-Injection-Container hinzuzufügen.

builder.AddRedisDistributedCache(connectionName: "cache");

Tipp

Der parameter connectionName muss mit dem Namen übereinstimmen, der beim Hinzufügen der Redis-Ressource im App-Hostprojekt verwendet wird. Weitere Informationen finden Sie unter Hinzufügen Redis Ressource.

Trinkgeld

Der parameter connectionName muss mit dem Namen übereinstimmen, der beim Hinzufügen der Garnet-Ressource im App-Hostprojekt verwendet wird. Weitere Informationen finden Sie unter Hinzufügen einer Garnetressource.

Trinkgeld

Der parameter connectionName muss mit dem Namen übereinstimmen, der beim Hinzufügen der Valkey-Ressource im App-Hostprojekt verwendet wird. Weitere Informationen finden Sie unter Hinzufügen der Valkey-Ressource.

Anschließend können Sie die IDistributedCache Instanz mithilfe der Abhängigkeitseinfügung abrufen. So rufen Sie beispielsweise den Cache aus einem Dienst ab:

public class ExampleService(IDistributedCache cache)
{
    // Use cache...
}

Weitere Informationen zur Abhängigkeitsinjektion finden Sie unter .NET Abhängigkeitsinjektion.

Hinzufügen von zugewiesen Redisclient

Es kann Situationen geben, in denen Sie mehrere IDistributedCache Instanzen mit unterschiedlichen Verbindungsnamen registrieren möchten. Rufen Sie die AddKeyedRedisDistributedCache-Methode auf, um verschlüsselte Redis-Clients zu registrieren.

builder.AddKeyedRedisDistributedCache(name: "chat");
builder.AddKeyedRedisDistributedCache(name: "product");

Anschließend können Sie die IDistributedCache Instanzen mithilfe der Abhängigkeitseinfügung abrufen. So rufen Sie beispielsweise die Verbindung aus einem Beispieldienst ab:

public class ExampleService(
    [FromKeyedServices("chat")] IDistributedCache chatCache,
    [FromKeyedServices("product")] IDistributedCache productCache)
{
    // Use caches...
}

Weitere Informationen zu schlüsselbasierten Diensten finden Sie unter .NET Abhängigkeitsinjektion: schlüsselbasierte Dienste.

Konfiguration

Die .NET AspireRedis Integration verteilter Zwischenspeicherung bietet mehrere Optionen zum Konfigurieren der Redis Verbindung basierend auf den Anforderungen und Konventionen Ihres Projekts.

Verwenden Sie eine Verbindungszeichenfolge

Wenn Sie eine Verbindungszeichenfolge aus dem Konfigurationsabschnitt ConnectionStrings verwenden, können Sie beim Aufrufen von builder.AddRedisDistributedCacheden Namen der Verbindungszeichenfolge angeben:

builder.AddRedisDistributedCache("cache");

Anschließend wird die Verbindungszeichenfolge aus dem Konfigurationsabschnitt ConnectionStrings abgerufen:

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

Weitere Informationen zum Formatieren dieser Verbindungszeichenfolge finden Sie in der Stack Exchange Redis-Konfigurationsdokumentation.

Konfigurationsanbieter verwenden

Die .NET Aspire Stack Exchange Redis Integration unterstützt Microsoft.Extensions.Configuration. Sie lädt die StackExchangeRedisSettings mithilfe des Aspire:StackExchange:Redis Schlüssels aus der Konfiguration. Beispiel appsettings.json, das einige der Optionen konfiguriert:

{
  "Aspire": {
    "StackExchange": {
      "Redis": {
        "ConnectionString": "localhost:6379",
        "DisableHealthChecks": true,
        "DisableTracing": false
      }
    }
  }
}

Das vollständige Redisclient Integration JSON Schema finden Sie unter Aspire. StackExchange.Redis/ConfigurationSchema.json.

Verwenden von Inline-Delegaten

Sie können auch den Action<StackExchangeRedisSettings> Delegat übergeben, um einige oder alle Optionen inline einzurichten, z. B. zum Konfigurieren von DisableTracing:

builder.AddRedisDistributedCache(
    "cache",
    settings => settings.DisableTracing = true);

Sie können die ConfigurationOptions- auch mithilfe des Action<ConfigurationOptions> configureOptions Delegatparameters der AddRedisDistributedCache-Methode einrichten. Zum Beispiel, um das Verbindungstimeout festzulegen:

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

Gesundheitschecks

Standardmäßig aktivieren .NET.NET Aspire Integrationen Gesundheitsüberprüfungen für alle Dienste. Weitere Informationen finden Sie unter .NET.NET Aspire Integrationsübersicht.

Die .NET AspireRedis integration verteilter Cache behandelt Folgendes:

  • Fügt die StackExchange.Redis Integritätsprüfung hinzu, versucht, die Verbindung zu öffnen und wird ausgelöst, wenn sie fehlschlägt.
  • Integriert in den /health HTTP-Endpunkt, der angibt, dass alle registrierten Integritätsprüfungen bestehen müssen, damit die App als bereit für die Annahme des Datenverkehrs betrachtet werden kann.

Observability und Telemetrie

.NET .NET Aspire Integrationen richten automatisch Protokollierungs-, Ablaufverfolgungs- und Metrikkonfigurationen ein, die manchmal als die Säulen der Beobachtbarkeitbezeichnet werden. Weitere Informationen zur Integrations-Observability und Telemetrie finden Sie unter .NET.NET Aspire Integrationsübersicht. Abhängig vom Backend-Dienst unterstützen einige Integrationen möglicherweise nur einige dieser Funktionen. Beispielsweise unterstützen einige Integrationen Protokollierung und Ablaufverfolgung, aber keine Metriken. Telemetrie-Features können auch mithilfe der Techniken deaktiviert werden, die im Abschnitt Configuration dargestellt werden.

Protokollierung

Die Integration .NET AspireRedis von verteiltem Caching verwendet die folgenden Protokollkategorien:

  • Aspire.StackExchange.Redis
  • Microsoft.Extensions.Caching.StackExchangeRedis

Verfolgung

Die .NET AspireRedis Integration für verteiltes Caching gibt die folgenden Tracing-Aktivitäten mithilfe von OpenTelemetryaus:

  • OpenTelemetry.Instrumentation.StackExchangeRedis

Kennzahlen

Die .NET AspireRedis Integration des verteilten Caches unterstützt metriken aufgrund von Einschränkungen mit der StackExchange.Redis-Bibliothek derzeit nicht standardmäßig.

Azure Redis Hosting-Integration

Um Ihre Redis Ressourcen für Azurebereitzustellen, installieren Sie das 📦Aspire.Hosting.Azure.Redis NuGet-Paket:

dotnet add package Aspire.Hosting.Azure.Redis

Azure Cache for Redis server Ressource hinzufügen

Rufen Sie nach der Installation des .NET Aspire Hosting-AzureRedis-Pakets die AddAzureRedis-Erweiterungsmethode in Ihrem App-Host-Projekt auf.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddAzureRedis("azcache")

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

Der vorherige Aufruf von AddAzureRedis konfiguriert die Redisserver Ressource, die als Azure Cache for Redisbereitgestellt werden soll.

Wichtig

Standardmäßig konfiguriert AddAzureRedisMicrosoft Entra ID Authentifizierung. Dies erfordert Änderungen an Anwendungen, die eine Verbindung mit diesen Ressourcen herstellen müssen, z. B. client Integrationen.

Hinzufügen Azure Cache for Redis verteilt client

Wenn Sie AddAzureRedis in Ihrer Redis Hostingintegration aufrufen, wird standardmäßig 📦 Microsoft konfiguriert.Azure. StackExchangeRedis NuGet-Paket zum Aktivieren der Authentifizierung:

dotnet add package Microsoft.Azure.StackExchangeRedis

Die Redis-Verbindung kann mithilfe der client-Integration und Microsoft.Azure.StackExchangeRedisgenutzt werden. Berücksichtigen Sie den folgenden Konfigurationscode:

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;
});

Weitere Informationen finden Sie im Microsoft.Azure. StackExchangeRedis Repository.

Siehe auch

*: Redis ist eine eingetragene Marke der Redis Ltd. Alle dort enthaltenen Rechte sind Redis Ltd. vorbehalten. Jede Verwendung von Microsoft dient nur zu referenziellen Zwecken und gibt keine Unterstützung, Bestätigung oder Zugehörigkeit zwischen Redis und Microsoft an. Zum anfangzurückkehren?