В моей текущей реализации я настроил приложение для использования пользовательского In-Memory. решение для кэширования при работе в локальной среде разработки (т. е. в режиме отладки) и использовать Azure Redis Cache с настраиваемой реализацией при развертывании в режиме выпуска.
С последними обновлениями из .NET 9 я заметил, что теперь доступен HybridCache, который также совместим с .NET 8. Согласно документации, HybridCache сочетает в себе оба подхода (кэш в памяти и распределенный кеш), используя двухуровневую систему кеширования:
L1: быстрый кеш в памяти
L2: распределенный кеш (например, Redis, SQL Server и т. д.)
Я заинтересован в использовании HybridCache в моем приложении. В частности, я хочу использовать специальную реализацию кэширования в памяти (L1), пока приложение работает в режиме отладки, и переключиться на использование распределенного кэша (Azure RedisCache) во время работы в режиме выпуска.
Не мог бы кто-нибудь поделиться? пример кода или эталонная реализация для этого сценария? Мы будем очень признательны за любые рекомендации и рекомендации.
Вот существующий код:
Код: Выделить всё
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;
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... environmen