Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Obejmuje: integrację hostingu —
Client
Dowiedz się, jak używać integracji buforowania danych wyjściowych .NET AspireRedis. Integracja klienta Aspire.StackExchange.Redis.OutputCaching
służy do rejestrowania usługi buforowania wyjściowego ASP.NET Core, obsługiwanej przez serwer Redis przy użyciu obrazu kontenera docker.io/library/redis
.
Dowiedz się, jak używać integracji buforowania danych wyjściowych .NET AspireRedis. Integracja klienta Aspire.StackExchange.Redis.OutputCaching
służy do rejestrowania dostawcy buforowania wyjściowego ASP.NET Core wspieranego przez serwer Garnet za pomocą obrazu kontenera ghcr.io/microsoft/garnet
.
Dowiedz się, jak używać integracji buforowania danych wyjściowych .NET AspireRedis. Integracja klienta Aspire.StackExchange.Redis.OutputCaching
służy do rejestrowania dostawcy buforowania wyjściowego ASP.NET Core, wspieranego przez serwer Valkey, przy użyciu obrazu kontenera docker.io/valkey/valkey
.
Integracja hostingu
Integracja hostingu Redis modeluje zasób Redis jako typ RedisResource. Aby uzyskać dostęp do tego typu i interfejsów API do wyrażania ich jako zasobów w projekcie hosta aplikacji , dodaj pakiet NuGet 📦Aspire.Hosting.Redis.
dotnet add package Aspire.Hosting.Redis
Aby uzyskać więcej informacji, zobacz dotnet add package lub Zarządzanie zależnościami pakietów w aplikacjach .NET.
Dodawanie zasobu Redis
W projekcie hosta aplikacji wywołaj AddRedis na instancji builder
, aby dodać zasób Redis.
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddRedis("cache");
builder.AddProject<Projects.ExampleProject>()
.WithReference(cache);
// After adding all resources, run the app...
Gdy .NET.NET Aspire dodaje obraz kontenera do hosta aplikacji, jak pokazano w poprzednim przykładzie z obrazem docker.io/Redis/Redis
, tworzy nowe wystąpienie Redis na komputerze lokalnym. Odwołanie do Twojego zasobu Redis (zmiennej cache
) jest dodawane do ExampleProject
.
Metoda WithReference konfiguruje połączenie w ExampleProject
o nazwie "cache"
. Aby uzyskać więcej informacji, zobacz Cykl życia zasobów kontenera.
Napiwek
Jeśli wolisz nawiązać połączenie z istniejącym wystąpieniem Redis, wywołaj AddConnectionString zamiast tego. Aby uzyskać więcej informacji, zobacz Referencje istniejących zasobów.
Dodawanie zasobu Redis za pomocą usługi Redis Insights
Aby dodać Redis Insights do zasobu Redis, wywołaj metodę 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 to darmowy interfejs graficzny do analizowania danych Redis na wszystkich systemach operacyjnych i wdrożeniach Redis, wspierany przez naszego asystenta sztucznej inteligencji, Redis Copilot.
.NET
.NET Aspire dodaje kolejny obraz kontenera docker.io/redis/redisinsight
do hosta aplikacji, który uruchamia aplikację dowódcy.
Notatka
Aby skonfigurować port hosta dla łańcucha RedisInsightResource
, należy wywołać interfejs API WithHostPort
i podać żądany numer portu.
Dodawanie zasobu Redis za pomocą dowódcy Redis
Aby dodać Redis Commander do zasobu Redis, wywołaj metodę 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 to aplikacja internetowa Node.js używana do wyświetlania, edytowania i zarządzania bazą danych Redis.
.NET
.NET Aspire dodaje kolejny obraz kontenera docker.io/rediscommander/redis-commander
do hosta aplikacji, który uruchamia aplikację dowódcy.
Napiwek
Aby skonfigurować port hosta dla łańcucha RedisCommanderResource, należy wywołać interfejs API WithHostPort i podać żądany numer portu.
Dodawanie zasobu Redis z woluminem danych
Aby dodać wolumin danych do zasobu Redis, wywołaj metodę WithDataVolume w zasobie 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...
Wolumen danych służy do utrwalania danych Redis poza cyklem życia kontenera. Wolumin danych jest instalowany w ścieżce /data
w kontenerze Redis, a gdy nie podano parametru name
, nazwa jest generowana losowo. Aby uzyskać więcej informacji na temat woluminów danych i szczegóły dotyczące tego, dlaczego są preferowane zamiast montowań wiązań , zobacz dokumentację Docker: Woluminy.
Dodaj zasób Redis z montowaniem wiążącym danych
Aby dodać powiązanie danych do zasobu Redis, wywołaj metodę 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...
Ważny
Montowania powiązane danych mają ograniczoną funkcjonalność w porównaniu z woluminami, które zapewniają lepszą wydajność, przenośność i bezpieczeństwo, co czyni je bardziej odpowiednimi dla środowisk produkcyjnych. Jednak punkty wiązania umożliwiają bezpośredni dostęp i modyfikację plików na systemie hosta, co jest idealne do programowania i testowania wymagających zmian w czasie rzeczywistym.
Montaże powiązań danych polegają na systemie plików maszyny hosta w celu utrwalania Redis danych po ponownym uruchomieniu kontenera. Powiązanie danych jest montowane w ścieżce C:\Redis\Data
w systemie Windows (lub /Redis/Data
w Unix) na maszynie hosta w kontenerze Redis. Aby uzyskać więcej informacji na temat montowania powiązań danych, zobacz Docker docs: Bind mounts.
Dodaj zasób Redis z trwałością
Aby dodać trwałość do zasobu Redis, wywołaj metodę WithPersistence za pomocą wolumenu danych lub montowania powiązań danych.
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...
Powyższy kod nadaje trwałość zasobowi Redis przez utworzenie migawek danych Redis w określonych interwałach czasowych i przy określonym progu.
interval
to czas między eksportowaniem migawek, a keysChangedThreshold
to liczba operacji zmiany klucza potrzebnych do wyzwolenia migawki. Aby uzyskać więcej informacji na temat trwałości, zobacz Redis docs: Trwałość.
Integracja hostingu Garnet modeluje zasób Garnet jako typ GarnetResource. Aby uzyskać dostęp do tego typu i interfejsów API, które umożliwiają dodanie go do pakietu NuGet 📦Aspire.Hosting.Garnet w projekcie hosta aplikacji .
dotnet add package Aspire.Hosting.Garnet
Aby uzyskać więcej informacji, zobacz dotnet add package lub Zarządzanie zależnościami pakietów w aplikacjach .NET.
Dodawanie zasobu Garnet
W projekcie hostującym aplikację wywołaj AddGarnet na instancji builder
, aby dodać zasób Garnet:
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddGarnet("cache");
builder.AddProject<Projects.ExampleProject>()
.WithReference(cache);
// After adding all resources, run the app...
Gdy .NET.NET Aspire dodaje obraz kontenera do hosta aplikacji, jak pokazano w poprzednim przykładzie z obrazem ghcr.io/microsoft/garnet
, tworzy nowe wystąpienie Garnet na twoim lokalnym komputerze. Odwołanie do zasobu Garnet (zmienna cache
) jest dodawane do zmiennej ExampleProject
.
Metoda WithReference konfiguruje połączenie w ExampleProject
o nazwie "cache"
. Aby uzyskać więcej informacji, zobacz Cykl życia zasobów kontenera.
Napiwek
Jeśli wolisz nawiązać połączenie z istniejącym wystąpieniem Garnet, zamiast tego wywołaj AddConnectionString. Aby uzyskać więcej informacji, zobacz Referencje istniejących zasobów.
Dodawanie zasobu Garnet z woluminem danych
Aby dodać wolumin danych do zasobu Garnet, wywołaj metodę AddGarnet w zasobie 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...
Wolumin danych jest wykorzystywany do przechowywania danych Garnet poza cyklem życia jego kontenera. Wolumin danych jest instalowany w ścieżce /data
w kontenerze Garnet i gdy nie podano parametru name
, nazwa jest generowana losowo. Aby uzyskać więcej informacji na temat woluminów danych i szczegóły dotyczące tego, dlaczego są preferowane zamiast montowań wiązań , zobacz dokumentację Docker: Woluminy.
Dodaj zasób Garnet z powiązaniem danych poprzez mount
Aby dodać dowiązanie danych do zasobu Garnet, wywołaj metodę 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...
Ważny
Montowania powiązane danych mają ograniczoną funkcjonalność w porównaniu z woluminami, które zapewniają lepszą wydajność, przenośność i bezpieczeństwo, co czyni je bardziej odpowiednimi dla środowisk produkcyjnych. Jednak punkty wiązania umożliwiają bezpośredni dostęp i modyfikację plików na systemie hosta, co jest idealne do programowania i testowania wymagających zmian w czasie rzeczywistym.
Montowanie danych przy użyciu powiązań opiera się na systemie plików komputera hosta dla utrwalenia danych Garnet między ponownymi uruchomieniami kontenera. Powiązanie danych jest montowane w ścieżce C:\Garnet\Data
w systemie Windows (lub /Garnet/Data
w Unix) na maszynie hosta w kontenerze Garnet. Aby uzyskać więcej informacji na temat montowania powiązań danych, zobacz Docker docs: Bind mounts.
Dodaj zasób Garnet z zachowaniem trwałości
Aby dodać trwałość do zasobu Garnet, wywołaj metodę WithPersistence z użyciem woluminu danych lub montowania powiązań danych.
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...
Powyższy kod zapewnia trwałość zasobu Redis, tworząc migawki danych Garnet w określonym interwale i progu.
interval
to czas między eksportowaniem migawek, a keysChangedThreshold
to liczba operacji zmiany klucza potrzebnych do wyzwolenia migawki. Aby uzyskać więcej informacji na temat trwałości, zobacz Redis docs: Trwałość.
Integracja hostingu Valkey modeluje zasób Valkey jako typ ValkeyResource. Aby uzyskać dostęp do tego typu oraz interfejsów API umożliwiających jego dodanie do pakietu NuGet 📦Aspire.Hosting.Valkey w projekcie hosta aplikacji .
dotnet add package Aspire.Hosting.Valkey
Aby uzyskać więcej informacji, zobacz dotnet add package lub Zarządzanie zależnościami pakietów w aplikacjach .NET.
Dodawanie zasobu Valkey
W projekcie hosta aplikacji wywołaj AddValkey na instancji builder
, aby dodać zasób Valkey.
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddValkey("cache");
builder.AddProject<Projects.ExampleProject>()
.WithReference(cache);
// After adding all resources, run the app...
Gdy .NET.NET Aspire dodaje obraz kontenera do hosta aplikacji, jak pokazano na wcześniejszym przykładzie z obrazem docker.io/valkey/valkey
, tworzy nowe wystąpienie Valkey na komputerze lokalnym. Odwołanie do zmiennej zasobu Valkey (cache
) zostaje dodane do ExampleProject
.
Metoda WithReference konfiguruje połączenie w ExampleProject
o nazwie "cache"
. Aby uzyskać więcej informacji, zobacz Cykl życia zasobów kontenera.
Napiwek
Jeśli wolisz nawiązać połączenie z istniejącym wystąpieniem Valkey, wywołaj zamiast tego AddConnectionString. Aby uzyskać więcej informacji, zobacz Referencje istniejących zasobów.
Dodawanie zasobu Valkey z woluminem danych
Aby dodać wolumin danych do zasobu Valkey, wywołaj metodę AddValkey w zasobie 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...
Wolumin danych jest używany do utrwalania danych Valkey poza cyklem życia kontenera. Wolumin danych jest instalowany w ścieżce /data
w kontenerze Valkey, a gdy nie podano parametru name
, nazwa jest generowana losowo. Aby uzyskać więcej informacji na temat woluminów danych i szczegóły dotyczące tego, dlaczego są preferowane zamiast montowań wiązań , zobacz dokumentację Docker: Woluminy.
Dodaj zasób Valkey z montowaniem wiązania danych
Aby dodać punkt montowania danych do zasobu Valkey, wywołaj metodę 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...
Ważny
Montowania powiązane danych mają ograniczoną funkcjonalność w porównaniu z woluminami, które zapewniają lepszą wydajność, przenośność i bezpieczeństwo, co czyni je bardziej odpowiednimi dla środowisk produkcyjnych. Jednak punkty wiązania umożliwiają bezpośredni dostęp i modyfikację plików na systemie hosta, co jest idealne do programowania i testowania wymagających zmian w czasie rzeczywistym.
Podłączenia danych polegają na systemie plików maszyny hosta do zachowania danych Valkey podczas restartów kontenera. Powiązanie danych jest zamontowane w ścieżce C:\Valkey\Data
na systemie Windows (lub /Valkey/Data
na Unix) na maszynie hosta w kontenerze Valkey. Aby uzyskać więcej informacji na temat montowania powiązań danych, zobacz Docker docs: Bind mounts.
Dodaj zasób Valkey z trwałością zapisu
Aby dodać trwałość do zasobu Valkey, wywołaj metodę WithPersistence za pomocą woluminu danych lub instalacji powiązania danych:
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...
Kod powyżej dodaje funkcję zapamiętywania do zasobu Redis poprzez regularne wykonywanie migawek danych Valkey w określonym interwale i po przekroczeniu progu.
interval
to czas między eksportowaniem migawek, a keysChangedThreshold
to liczba operacji zmiany klucza potrzebnych do wyzwolenia migawki. Aby uzyskać więcej informacji na temat trwałości, zobacz Redis docs: Trwałość.
Przeprowadzanie kontroli stanu integracji
Integracja hostingu Redis automatycznie dodaje monitorowanie stanu dla odpowiedniego typu zasobu. Kontrola kondycji sprawdza, czy serwer jest uruchomiony i czy można nawiązać z nim połączenie.
Integracja hostingu opiera się na pakiecie NuGet AspNetCore.HealthChecks 📦Redis.
integracja Client
Aby rozpocząć integrację z klientem buforowania wyjściowego .NET Aspire Stack Exchange Redis, zainstaluj 📦Aspire.StackExchange.Redis.OutputCaching pakiet NuGet w projekcie korzystającym z klienta, czyli w projekcie aplikacji używającej klienta buforowania wyjściowego. Integracja klienta buforowania wyjściowego Redis rejestruje usługi niezbędne do włączenia wywołań metod przez CacheOutput oraz użycia atrybutu [OutputCache], które bazują na Redis jako mechanizmie buforowania.
dotnet add package Aspire.StackExchange.Redis.OutputCaching
Dodawanie buforowania danych wyjściowych
W pliku Program.cs projektu korzystającego z klienta wywołaj metodę rozszerzenia AddRedisOutputCache na dowolnym IHostApplicationBuilder, aby zarejestrować wymagane usługi na potrzeby buforowania danych wyjściowych.
builder.AddRedisOutputCache(connectionName: "cache");
Napiwek
Parametr connectionName
musi być zgodny z nazwą używaną podczas dodawania zasobu Redis w projekcie hosta aplikacji. Aby uzyskać więcej informacji, zobacz Dodaj zasób Redis.
Napiwek
Parametr connectionName
musi być zgodny z nazwą używaną podczas dodawania zasobu Garnet w projekcie hosta aplikacji. Aby uzyskać więcej informacji, zobacz Dodawanie zasobu Garnet.
Napiwek
Parametr connectionName
musi być zgodny z nazwą używaną podczas dodawania zasobu Valkey w projekcie hosta aplikacji. Aby uzyskać więcej informacji, zobacz Dodawanie zasobu Valkey.
Dodaj międzyoprogramowanie do potoku przetwarzania żądań, wywołując UseOutputCache(IApplicationBuilder):
var app = builder.Build();
app.UseOutputCache();
W przypadku minimalnych aplikacji interfejsu APIskonfiguruj punkt końcowy do buforowania, wywołując CacheOutputlub stosując OutputCacheAttribute, jak pokazano w poniższych przykładach:
app.MapGet("/cached", () => "Hello world!")
.CacheOutput();
app.MapGet(
"/attribute",
[OutputCache] () => "Hello world!");
W przypadku aplikacji z kontrolerami zastosuj atrybut [OutputCache]
do metody akcji. W przypadku aplikacji Razor Pages zastosuj atrybut do klasy Razor page.
Konfiguracja
Integracja buforowania wyjściowego w .NET Aspire Stack Exchange Redis oferuje wiele opcji konfigurowania połączenia Redis w oparciu o wymagania i konwencje twojego projektu.
Użycie ciągu połączenia
W przypadku używania parametrów połączenia z sekcji konfiguracji ConnectionStrings
można podać nazwę parametrów połączenia podczas wywoływania AddRedisOutputCache:
builder.AddRedisOutputCache(connectionName: "cache");
Następnie parametry połączenia zostaną pobrane z sekcji konfiguracji ConnectionStrings
:
{
"ConnectionStrings": {
"cache": "localhost:6379"
}
}
Aby uzyskać więcej informacji na temat formatowania tego łańcucha połączenia, zobacz dokumentację konfiguracji
Korzystanie z dostawców konfiguracji
Integracja buforowania danych wyjściowych .NET Aspire Stack Exchange Redis obsługuje Microsoft.Extensions.Configuration. Ładuje StackExchangeRedisSettings z konfiguracji za pomocą klucza Aspire:StackExchange:Redis
. Przykład appsettings.json, który konfiguruje niektóre opcje:
{
"Aspire": {
"StackExchange": {
"Redis": {
"ConfigurationOptions": {
"ConnectTimeout": 3000,
"ConnectRetry": 2
},
"DisableHealthChecks": true,
"DisableTracing": false
}
}
}
}
Aby uzyskać pełny schemat integracji klienta z buforowaniem wyjściowym Redis, zobacz JSON.
Użyj delegatów wbudowanych
Możesz również przekazać delegata Action<StackExchangeRedisSettings> configurationSettings
, aby skonfigurować niektóre lub wszystkie opcje wbudowane, na przykład w celu wyłączenia kontroli kondycji z kodu:
builder.AddRedisOutputCache(
"cache",
static settings => settings.DisableHealthChecks = true);
Można skonfigurować ConfigurationOptions również przy użyciu parametru delegata Action<ConfigurationOptions> configureOptions
metody AddRedisOutputCache. Na przykład aby ustawić limit czasu połączenia:
builder.AddRedisOutputCache(
"cache",
static settings => settings.ConnectTimeout = 3_000);
Client kontrole stanu integracji
Domyślnie .NET.NET Aspireintegracje klienta mają kontrole stanu włączone dla wszystkich usług. Podobnie wiele .NET.NET Aspireintegracji hostingowych również umożliwia punkty końcowe sprawdzania kondycji. Aby uzyskać więcej informacji, zobacz:
- .NET sprawdzanie kondycji aplikacji w języku C#
- kontrole kondycji w ASP.NET Core
Integracja buforowania wyjściowego .NET Aspire Stack Exchange Redis obsługuje następujące elementy:
- Dodaje sprawdzenie kondycji, gdy StackExchangeRedisSettings.DisableHealthChecks jest
false
, próbujące nawiązać połączenie z instancją kontenera. - Integruje się z
/health
punktem końcowym HTTP, który określa, że wszystkie zarejestrowane kontrole kondycji muszą być pomyślnie przeprowadzone, aby aplikacja została uznana za gotową do akceptowania ruchu.
Obserwowanie i telemetria
.NET
.NET Aspire integracje automatycznie konfigurują rejestrowanie, śledzenie i metryki, które są czasami nazywane filarami obserwowalności. Aby uzyskać więcej informacji na temat możliwości obserwacji integracji i telemetrii, zobacz omówienie integracji .NET.NET Aspire. W zależności od usługi pomocniczej niektóre integracje mogą obsługiwać tylko niektóre z tych funkcji. Na przykład niektóre integracje obsługują rejestrowanie i śledzenie, ale nie metryki. Funkcje telemetrii można również wyłączyć przy użyciu technik przedstawionych w sekcji konfiguracji
Rejestrowanie
Integracja buforowania danych wyjściowych .NET Aspire Stack Exchange Redis korzysta z następujących kategorii dzienników:
Aspire.StackExchange.Redis
Microsoft.AspNetCore.OutputCaching.StackExchangeRedis
Śledzenie
Integracja buforowania wyjściowego .NET Aspire Stack Exchange z Redis wygeneruje następujące działania śledzenia za pomocą OpenTelemetry.
OpenTelemetry.Instrumentation.StackExchangeRedis
Wskaźniki
Domyślnie integracja buforowania danych wyjściowych .NET Aspire Stack Exchange Redis nie obsługuje metryk z powodu ograniczeń biblioteki StackExchange.Redis
.
Zobacz też
- Dokumentacja programu Stack Exchange Redis
- .NET .NET Aspire integracje
- .NET Aspire GitHub repozytorium
*: Redis jest zastrzeżonym znakiem towarowym Redis Ltd. Wszelkie prawa, które istnieją, są zastrzeżone do Redis Ltd. Każde użycie przez firmę Microsoft jest przeznaczone tylko do celów referentalnych i nie wskazuje żadnych sponsorów, poparcia ani przynależności między Redis a firmą Microsoft. powrócić do góry?