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 ASP.NET Core 8-Web-API, die traditionelles InMemoryCache und RedisCache basierend auf dem StackExchange.Redis NuGet-Paket verwendet.
In meiner aktuellen Implementierung habe ich die Anwendung so eingerichtet, dass sie eine benutzerdefinierte In-Memory-Caching-Lösung verwendet, wenn sie in der lokalen Entwicklungsumgebung (d. h. im DEBUG-Modus) ausgeführt wird, und Azure Redis Cache mit einer benutzerdefinierten Lösung verwendet Implementierung bei Bereitstellung im Release-Modus.
Mit den letzten Updates von .NET 9 ist mir aufgefallen, dass HybridCache jetzt verfügbar und auch mit .NET 8 kompatibel ist. Laut In der Dokumentation kombiniert HybridCache beide Ansätze (In-Memory- und verteilter Cache) mithilfe eines zweistufigen Caching-Systems:
  • L1: Schneller In-Memory Cache
  • L2: Verteilter Cache (z. B. Redis, SQL Server usw.)
Ich bin daran interessiert, HybridCache in meiner Anwendung zu nutzen. Konkret möchte ich eine benutzerdefinierte Implementierung des In-Memory-Caching (L1) 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 jemand bitte ein Codebeispiel oder eine Referenzimplementierung für dieses Szenario teilen? Für Hinweise oder Best Practices wären wir sehr dankbar.
Hier ist 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