Implementierung von HybridCache in der .NET 8-API für Entwicklungs- und ProduktionsumgebungenC#

Ein Treffpunkt für C#-Programmierer
Guest
 Implementierung von HybridCache in der .NET 8-API für Entwicklungs- und Produktionsumgebungen

Post by Guest »

Ich arbeite derzeit an einer .NET 8-API, die den traditionellen InMemoryCache und RedisCache basierend auf dem StackExchange.Redis NuGet-Paket nutzt.
In meiner aktuellen Implementierung habe ich die Anwendung für die Verwendung eines benutzerdefinierten In-Memory eingerichtet Caching-Lösung bei Ausführung in der lokalen Entwicklungsumgebung (d. h. im DEBUG-Modus) und zur Verwendung von Azure Redis Cache mit einer benutzerdefinierten Implementierung bei Bereitstellung im Release-Modus.
Mit den neuesten Updates von .NET 9 ist mir aufgefallen, dass HybridCache jetzt verfügbar und auch mit .NET 8 kompatibel ist. Laut Dokumentation kombiniert HybridCache beide Ansätze (In-Memory und Distributed Cache) mithilfe eines zweistufigen Caching-Systems:L1: Schneller In-Memory-Cache
L2: Verteilter Cache (z. B. Redis, SQL Server usw.)
Ich interessiere mich für Nutzung von HybridCache in meiner Anwendung. Konkret möchte ich eine benutzerdefinierte Implementierung von In-Memory (L1)-Caching verwenden, während die Anwendung im DEBUG-Modus ausgeführt wird, und zur Verwendung eines verteilten Caches (Azure RedisCache) wechseln, während sie im Release-Modus ausgeführt wird.
Könnte mir das bitte jemand mitteilen? ein Codebeispiel oder eine Referenzimplementierung für dieses Szenario? Für Hinweise oder Best Practices wären wir sehr dankbar.
Hier geht der vorhandene Code:

Code: Select all

    public static IServiceCollection AddCachingService(this IServiceCollection services)
{
var isCacheEnabed = FeatureManagerService.IsFeatureEnabled(nameof(FeatureFlags.EnableCaching));
if (!isCacheEnabed)
{
services.AddSingleton();
return services;
}

#if DEBUG
services.AddSingleton();
services.AddMemoryCache();
#else
services.AddSingleton();
#endif
return services;
}
Kann mir hier jemand mit einem Codebeispiel helfen, das als Referenz für meine Implementierung dienen wird?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post