【发布时间】:2021-06-25 21:52:00
【问题描述】:
我正在开发一个 .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?
【问题讨论】:
-
不知道你在这里问什么。如果缓存不可用,您能否举例说明您希望发生的情况?
-
@stuartd 我已经更新了问题和代码。如果有帮助,请告诉我。
标签: c# asp.net .net redis stackexchange.redis