® intégration de la mise en cache de sortie .NET AspireRedis*
inclut :intégration d’hébergement et
Client intégration
Découvrez comment utiliser l’intégration de mise en cache de sortie .NET AspireRedis. L'intégration du client Aspire.StackExchange.Redis.OutputCaching
est utilisée pour enregistrer un fournisseur de mise en cache de sortie ASP.NET Core soutenu par un serveur Redis avec l'image de conteneur docker.io/library/redis
.
Découvrez comment utiliser l’intégration de mise en cache de sortie .NET AspireRedis. L’intégration du client Aspire.StackExchange.Redis.OutputCaching
est utilisée pour inscrire un fournisseur de mise en cache de sortie ASP.NET Core soutenu par un serveur garnet avec l’image conteneur ghcr.io/microsoft/garnet
.
Découvrez comment utiliser l’intégration de mise en cache de sortie .NET AspireRedis. L'intégration du client Aspire.StackExchange.Redis.OutputCaching
est utilisée pour enregistrer un fournisseur de mise en cache de sortie ASP.NET Core soutenu par un serveur Valkey avec l'image conteneur docker.io/valkey/valkey
.
Intégration de l’hébergement
Le Redis hébergeant des modèles d’intégration d’une ressource Redis comme type de RedisResource. Pour accéder à ce type et à ces API pour les exprimer sous forme de ressources dans votre projet d'hôte d’application , ajoutez le package NuGet 📦AspireHébergementRedis :
dotnet add package Aspire.Hosting.Redis
Pour plus d'informations, consultez dotnet add package ou gérer les dépendances de package dans les applications .NET.
Ajouter Redis ressource
Dans votre projet hôte d’application, appelez AddRedis sur l’instance de builder
pour ajouter une ressource Redis :
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddRedis("cache");
builder.AddProject<Projects.ExampleProject>()
.WithReference(cache);
// After adding all resources, run the app...
Lorsque .NET.NET Aspire ajoute une image conteneur à l’hôte de l’application, comme illustré dans l’exemple précédent avec l’image docker.io/Redis/Redis
, il crée une instance de Redis sur votre ordinateur local. Une référence à votre ressource Redis (la variable cache
) est ajoutée au ExampleProject
.
La méthode WithReference configure une connexion dans le ExampleProject
nommé "cache"
. Pour plus d’informations, consultez cycle de vie des ressources de conteneur.
Pourboire
Si vous préférez vous connecter à une instance de Redis existante, appelez AddConnectionString à la place. Pour plus d’informations, consultez Référencer les ressources existantes.
Ajouter une ressource Redis avec Redis Insights
Pour ajouter Redis Insights à la ressource Redis, appelez la méthode 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 est une interface graphique gratuite permettant d’analyser Redis données sur tous les systèmes d’exploitation et les déploiements Redis avec l’aide de notre assistant IA, Redis Copilot.
.NET
.NET Aspire ajoute une autre image conteneur docker.io/redis/redisinsight
à l’hôte de l’application, qui exécute l'application Commander.
Note
Pour configurer le port hôte de la chaîne RedisInsightResource
un appel à l’API WithHostPort
et fournir le numéro de port souhaité.
Ajouter la ressource Redis avec le Commandant Redis
Pour ajouter le commandant
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 est une application web Node.js utilisée pour afficher, modifier et gérer une base de données Redis.
.NET
.NET Aspire ajoute une autre image conteneur docker.io/rediscommander/redis-commander
à l’hôte de l’application, qui exécute l'application Commander.
Pourboire
Pour configurer le port hôte de la chaîne RedisCommanderResource un appel à l’API WithHostPort et fournir le numéro de port souhaité.
Ajouter la ressource Redis avec un volume de données
Pour ajouter un volume de données à la ressource Redis, appelez la méthode WithDataVolume sur la ressource 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...
Le volume de données est utilisé pour conserver les données Redis en dehors du cycle de vie de son conteneur. Le volume de données est monté sur le chemin /data
dans le conteneur Redis et lorsqu'un paramètre name
n'est pas fourni, le nom est généré de manière aléatoire. Pour plus d'informations sur les volumes de données et la raison pour laquelle ils sont préférés aux montages de liaison , consultez la documentation Docker : Volumes.
Ajouter la ressource Redis avec montage lié de données
Pour ajouter un montage de liaison de données à la ressource Redis, appelez la méthode 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...
Important
Les montages de liaison de données ont des fonctionnalités limitées par rapport aux volumes , qui offrent de meilleures performances, portabilité et sécurité, les rendant ainsi plus adaptés aux environnements de production. Toutefois, les montages de liaison autorisent l’accès direct et la modification des fichiers sur le système hôte, idéal pour le développement et les tests dans les cas où des modifications en temps réel sont nécessaires.
Les montages de liaison de données s’appuient sur le système de fichiers de l’ordinateur hôte pour conserver les données Redis entre les redémarrages de conteneur. Le montage de liaison de données est monté au chemin d'accès C:\Redis\Data
sur Windows (ou /Redis/Data
sur Unix) de l'ordinateur hôte, dans le conteneur Redis. Pour plus d’informations sur les montages de liaison de données, consultez Docker docs : Liaison de montages.
Ajouter la ressource Redis avec persistance
Pour ajouter la persistance à la ressource Redis, appelez la méthode WithPersistence avec le volume de données ou le montage de liaison de données :
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...
Le code précédent ajoute la persistance à la ressource Redis en prenant des instantanés des données Redis à un intervalle et un seuil spécifiés. Le interval
est le temps entre les exportations d’instantanés et l'keysChangedThreshold
correspond au nombre d’opérations de modification clés requises pour déclencher un instantané. Pour plus d’informations sur la persistance, consultez Redis docs : Persistance.
L'intégration d'hébergement de Garnet modélise une ressource Garnet en tant que type de GarnetResource. Pour accéder à ce type et à ces API qui vous permettent de l’ajouter à votre 📦Aspire. Hosting.Garnet package NuGet dans le projet hôte d’application .
dotnet add package Aspire.Hosting.Garnet
Pour plus d'informations, consultez dotnet add package ou gérer les dépendances de package dans les applications .NET.
Ajouter une ressource garnet
Dans votre projet hôte d’application, appelez AddGarnet sur l’instance de builder
pour ajouter une ressource Garnet :
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddGarnet("cache");
builder.AddProject<Projects.ExampleProject>()
.WithReference(cache);
// After adding all resources, run the app...
Lorsque .NET.NET Aspire ajoute une image conteneur à l’hôte de l’application, comme illustré dans l’exemple précédent avec l’image ghcr.io/microsoft/garnet
, il crée une instance garnet sur votre ordinateur local. Une référence à votre ressource Garnet (la variable cache
) est ajoutée au ExampleProject
.
La méthode WithReference configure une connexion dans le ExampleProject
nommé "cache"
. Pour plus d’informations, consultez cycle de vie des ressources de conteneur.
Pourboire
Si vous préférez vous connecter à une instance garnet existante, appelez AddConnectionString à la place. Pour plus d’informations, consultez Référencer les ressources existantes.
Ajouter une ressource Garnet avec un volume de données
Pour ajouter un volume de données à la ressource Garnet, appelez la méthode AddGarnet sur la ressource 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...
Le volume de données est utilisé pour conserver les données garnet en dehors du cycle de vie de son conteneur. Le volume de données est monté sur le chemin d’accès /data
dans le conteneur Garnet et lorsqu’un paramètre name
n’est pas fourni, le nom est généré au hasard. Pour plus d'informations sur les volumes de données et la raison pour laquelle ils sont préférés aux montages de liaison , consultez la documentation Docker : Volumes.
Ajouter une ressource Garnet avec montage de lien de données
Pour ajouter un montage de liaison de données à la ressource Garnet, appelez la méthode 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...
Important
Les montages de liaison de données ont des fonctionnalités limitées par rapport aux volumes , qui offrent de meilleures performances, portabilité et sécurité, les rendant ainsi plus adaptés aux environnements de production. Toutefois, les montages de liaison autorisent l’accès direct et la modification des fichiers sur le système hôte, idéal pour le développement et les tests dans les cas où des modifications en temps réel sont nécessaires.
Les montages de liaison de données s’appuient sur le système de fichiers de l’ordinateur hôte pour conserver les données garnet entre les redémarrages de conteneur. Le montage de liaison de données est monté dans le conteneur Garnet à l'emplacement C:\Garnet\Data
sur Windows (ou au chemin d'accès /Garnet/Data
sur Unix) de l'ordinateur hôte. Pour plus d’informations sur les montages de liaison de données, consultez Docker docs : Liaison de montages.
Ajouter une ressource Garnet avec persistance
Pour ajouter la persistance à la ressource Garnet, appelez la méthode WithPersistence avec le volume de données ou le montage de liaison de données :
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...
Le code précédent ajoute la persistance à la ressource Redis en prenant des captures instantanées des données garnet à un intervalle et un seuil spécifiés. Le interval
est le temps entre les exportations d’instantanés et l'keysChangedThreshold
correspond au nombre d’opérations de modification clés requises pour déclencher un instantané. Pour plus d’informations sur la persistance, consultez Redis docs : Persistance.
L’hébergement Valkey modélise une ressource Valkey comme type ValkeyResource. Pour accéder à ce type et à ces API qui vous permettent de l’ajouter à votre
dotnet add package Aspire.Hosting.Valkey
Pour plus d'informations, consultez dotnet add package ou gérer les dépendances de package dans les applications .NET.
Ajouter une ressource Valkey
Dans votre projet hôte d’application, appelez AddValkey sur l’instance de builder
pour ajouter une ressource Valkey :
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddValkey("cache");
builder.AddProject<Projects.ExampleProject>()
.WithReference(cache);
// After adding all resources, run the app...
Lorsque .NET.NET Aspire ajoute une image conteneur à l’hôte de l’application, comme illustré dans l’exemple précédent avec l’image docker.io/valkey/valkey
, il crée une instance Valkey sur votre ordinateur local. Une référence à votre ressource Valkey (la variable cache
) est ajoutée au ExampleProject
.
La méthode WithReference configure une connexion dans le ExampleProject
nommé "cache"
. Pour plus d’informations, consultez cycle de vie des ressources de conteneur.
Pourboire
Si vous préférez vous connecter à une instance Valkey existante, appelez AddConnectionString à la place. Pour plus d’informations, consultez Référencer les ressources existantes.
Ajouter une ressource Valkey avec un volume de données
Pour ajouter un volume de données à la ressource Valkey, appelez la méthode AddValkey sur la ressource 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...
Le volume de données est utilisé pour conserver les données Valkey en dehors du cycle de vie de son conteneur. Le volume de données est monté sur le chemin d’accès /data
dans le conteneur Valkey et lorsqu’un paramètre name
n’est pas fourni, le nom est généré au hasard. Pour plus d'informations sur les volumes de données et la raison pour laquelle ils sont préférés aux montages de liaison , consultez la documentation Docker : Volumes.
Ajouter une ressource Valkey avec monture de liaison de données.
Pour ajouter un montage de liaison de données à la ressource Valkey, appelez la méthode 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...
Important
Les montages de liaison de données ont des fonctionnalités limitées par rapport aux volumes , qui offrent de meilleures performances, portabilité et sécurité, les rendant ainsi plus adaptés aux environnements de production. Toutefois, les montages de liaison autorisent l’accès direct et la modification des fichiers sur le système hôte, idéal pour le développement et les tests dans les cas où des modifications en temps réel sont nécessaires.
Les montages de liaison de données s’appuient sur le système de fichiers de la machine hôte pour conserver les données Valkey lors des redémarrages des conteneurs. Dans le conteneur Valkey, le montage de liaison de données est monté au chemin C:\Valkey\Data
sur Windows (ou /Valkey/Data
sur Unix) sur l’ordinateur hôte. Pour plus d’informations sur les montages de liaison de données, consultez Docker docs : Liaison de montages.
Ajouter une ressource Valkey avec persistance
Pour ajouter la persistance à la ressource Valkey, appelez la méthode WithPersistence avec le volume de données ou le montage de liaison de données :
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...
Le code précédent ajoute la persistance à la ressource Redis en prenant des captures instantanées des données Valkey à un intervalle et un seuil spécifiés. Le interval
est le temps entre les exportations d’instantanés et l'keysChangedThreshold
correspond au nombre d’opérations de modification clés requises pour déclencher un instantané. Pour plus d’informations sur la persistance, consultez Redis docs : Persistance.
Vérifications de l'intégrité de l'hébergement intégré
L’intégration d’hébergement Redis ajoute automatiquement un contrôle d’intégrité pour le type de ressource approprié. Le contrôle d’intégrité vérifie que le serveur est en cours d’exécution et qu’une connexion peut être établie à celui-ci.
L’intégration de l’hébergement s’appuie sur les 📦 AspNetCore.HealthChecks.Redis paquet NuGet.
intégration de Client
Pour commencer à utiliser l’intégration du client de mise en cache de sortie .NET Aspire Stack Exchange Redis, installez le 📦Aspire. StackExchange.Redis. OutputCaching package NuGet dans le projet consommant le client, c’est-à-dire le projet pour l’application qui utilise le client de mise en cache de sortie. L'intégration du client de mise en cache de sortie Redis enregistre les services nécessaires pour permettre les appels de méthode CacheOutput et l'utilisation de l'attribut [OutputCache] s'appuyant sur Redis comme mécanisme de mise en cache.
dotnet add package Aspire.StackExchange.Redis.OutputCaching
Ajouter la mise en cache de sortie
Dans le fichier Program.cs de votre projet consommant le client, appelez la méthode d’extension AddRedisOutputCache sur n’importe quel IHostApplicationBuilder pour inscrire les services requis pour la mise en cache de sortie.
builder.AddRedisOutputCache(connectionName: "cache");
Pourboire
Le paramètre connectionName
doit correspondre au nom utilisé lors de l’ajout de la ressource Redis dans le projet hôte de l’application. Pour plus d’informations, consultez Ajouter Redis ressource.
Pourboire
Le paramètre connectionName
doit correspondre au nom utilisé lors de l’ajout de la ressource Garnet dans le projet hôte de l’application. Pour plus d’informations, consultez Ajouter une ressource Garnet.
Pourboire
Le paramètre connectionName
doit correspondre au nom utilisé lors de l’ajout de la ressource Valkey dans le projet hôte de l’application. Pour plus d’informations, consultez Ajouter une ressource Valkey.
Ajoutez le middleware au pipeline de traitement des demandes en appelant UseOutputCache(IApplicationBuilder):
var app = builder.Build();
app.UseOutputCache();
Pour applications API minimales, configurez un point de terminaison pour effectuer la mise en cache en appelant CacheOutput, ou en appliquant le OutputCacheAttribute, comme illustré dans les exemples suivants :
app.MapGet("/cached", () => "Hello world!")
.CacheOutput();
app.MapGet(
"/attribute",
[OutputCache] () => "Hello world!");
Pour les applications avec des contrôleurs, appliquez l’attribut [OutputCache]
à la méthode d’action. Pour les applications Razor Pages, appliquez l’attribut à la classe de page Razor.
Paramétrage
L’intégration de mise en cache de sortie .NET Aspire Stack Exchange Redis fournit plusieurs options pour configurer la connexion Redis en fonction des exigences et des conventions de votre projet.
Utiliser une chaîne de connexion
Lorsque vous utilisez une chaîne de connexion à partir de la section de configuration ConnectionStrings
, vous pouvez fournir le nom de la chaîne de connexion lors de l’appel de AddRedisOutputCache:
builder.AddRedisOutputCache(connectionName: "cache");
Ensuite, la chaîne de connexion est récupérée à partir de la section de configuration ConnectionStrings
:
{
"ConnectionStrings": {
"cache": "localhost:6379"
}
}
Pour plus d’informations sur la mise en forme de cette chaîne de connexion, consultez la documentation de configuration RedisStack Exchange.
Utiliser des fournisseurs de configuration
L’intégration de mise en cache de sortie .NET Aspire Stack Exchange Redis prend en charge Microsoft.Extensions.Configuration. Il charge le StackExchangeRedisSettings depuis configuration en utilisant la clé Aspire:StackExchange:Redis
. Exemple appsettings.json qui configure certaines des options suivantes :
{
"Aspire": {
"StackExchange": {
"Redis": {
"ConfigurationOptions": {
"ConnectTimeout": 3000,
"ConnectRetry": 2
},
"DisableHealthChecks": true,
"DisableTracing": false
}
}
}
}
Pour obtenir le schéma complet Redis de mise en cache du client JSON de sortie, consultez Aspire. StackExchange.Redis. OutputCaching/ConfigurationSchema.json.
Utiliser des délégués en ligne
Vous pouvez également transmettre le délégué Action<StackExchangeRedisSettings> configurationSettings
pour configurer certaines ou toutes les options en ligne, par exemple pour désactiver les contrôles de santé directement dans le code :
builder.AddRedisOutputCache(
"cache",
static settings => settings.DisableHealthChecks = true);
Vous pouvez également configurer le ConfigurationOptions
builder.AddRedisOutputCache(
"cache",
static settings => settings.ConnectTimeout = 3_000);
Client contrôles de santé de l’intégration
Par défaut, les intégrations de clients .NET.NET Aspire ont les contrôles de santé activés pour tous les services. De même, de nombreuses intégrations d'hébergement .NET.NET Aspire activent également les endpoints de vérification de santé. Pour plus d’informations, consultez :
- .NET vérification de l'état de santé des applications en C#
- vérifications de santé dans ASP.NET Core
L’intégration de la mise en cache de sortie .NET AspireRedis Stack Exchange Redis gère les opérations suivantes :
- Ajoute le contrôle de santé lorsque StackExchangeRedisSettings.DisableHealthChecks est
false
, afin de tenter de se connecter à l’instance de conteneur. - S’intègre au point de terminaison HTTP
/health
, qui spécifie que toutes les vérifications d’intégrité inscrites doivent passer pour que l’application soit considérée comme prête à accepter le trafic.
Observabilité et télémétrie
.NET .NET Aspire intégrations configurent automatiquement les paramètres de journalisation, de suivi et de métriques, appelés parfois les piliers de l’observabilité. Pour plus d’informations sur l’observabilité de l’intégration et la télémétrie, consultez .NET.NET Aspire vue d’ensemble des intégrations. Selon le service de stockage, certaines intégrations peuvent uniquement prendre en charge certaines de ces fonctionnalités. Par exemple, certaines intégrations prennent en charge la journalisation et le suivi, mais pas les métriques. Les fonctionnalités de télémétrie peuvent également être désactivées à l’aide des techniques présentées dans la section Configuration.
Exploitation forestière
L’intégration de mise en cache de sortie .NET Aspire Stack Exchange Redis utilise les catégories de journaux suivantes :
Aspire.StackExchange.Redis
Microsoft.AspNetCore.OutputCaching.StackExchangeRedis
Traçage
L’intégration de la mise en cache de sortie .NET Aspire Stack Exchange Redis émet les activités de suivi suivantes à l’aide de OpenTelemetry:
OpenTelemetry.Instrumentation.StackExchangeRedis
Métriques
L’intégration de mise en cache de sortie .NET Aspire Stack Exchange Redis ne prend actuellement pas en charge les métriques par défaut en raison de limitations avec la bibliothèque StackExchange.Redis
.
Voir aussi
*: Redis est une marque déposée de Redis Ltd. Tous les droits qu’il contient sont réservés à Redis Ltd. Toute utilisation par Microsoft est destinée à des fins référentielles uniquement et n’indique pas de parrainage, d’approbation ou d’affiliation entre Redis et Microsoft. Revenir au premier?