Я работаю над приложением .NET Core 3.1. Используется библиотека StackExchange.Redis для обработки операций с кешем в Redis.
Настройка строки подключения в Startup.cs
services.AddStackExchangeRedisCache(options => {
options.Configuration = Configuration.GetValue<string>("localhost:6379");
options.InstanceName = "laserlamb:";
});
Этот статический класс добавляет функцию SetRecord в IDistributedCache:
public static class DistributedCache
{
public static bool isCacheAvailable = true;
static DistributedCache()
{
}
public static async Task SetRecord(this IDistributedCache cache, string recordId, string value)
{
try
{
if (this.isCacheAvailable)
{
await cache.SetStringAsync(recordId, value);
}
}
catch (Exception e)
{
Log.Error(e.Message);
}
}
}
Использование объекта внедрения зависимости для установки записи в кэш.
public class SomeRandomClass
{
private IDistributedCache cache;
public SomeRandomClass(IDistributedCache cache) { this.cache = cache; }
public async Task SaveToCache()
{
await cache.SetRecord("Key", "Value");
}
}
Если мой экземпляр Redis не запущен, возникает ошибка.
Как мне обновить isCacheAvailable
, если кеш недоступен?