C# 如果Redis缓存失败,则执行一个函数
我正在开发一个.NETCore3.1应用程序。使用“StackExchange.Redis”库处理Redis上的缓存操作。C# 如果Redis缓存失败,则执行一个函数,c#,asp.net,.net,redis,stackexchange.redis,C#,Asp.net,.net,Redis,Stackexchange.redis,我正在开发一个.NETCore3.1应用程序。使用“StackExchange.Redis”库处理Redis上的缓存操作。 在Startup.cs中配置连接字符串 services.AddStackExchangeRedisCache(options => { options.Configuration = Configuration.GetValue<string>("localhost:6379"); options.InstanceN
在Startup.cs中配置连接字符串
services.AddStackExchangeRedisCache(options => {
options.Configuration = Configuration.GetValue<string>("localhost:6379");
options.InstanceName = "laserlamb:";
});
使用依赖项注入对象在缓存中设置记录
public class SomeRandomClass
{
private IDistributedCache cache;
public SomeRandomClass(IDistributedCache cache) { this.cache = cache; }
public async Task SaveToCache()
{
await cache.SetRecord("Key", "Value");
}
}
如果我的Redis实例没有运行,就会抛出一个错误。
当缓存不可用时,如何更新
isCacheAvailable
?
我想你需要检查一下。它有
Retry/WaitAndRetry/RetryForever
和断路器
,非常方便
您有MicrosoftDistributedCache
提供程序
去看看。我想你想去看看。它有
Retry/WaitAndRetry/RetryForever
和断路器
,非常方便
您有MicrosoftDistributedCache
提供程序
检查一下。不知道你在问什么。你能举个例子说明如果缓存不可用,你希望发生什么吗?@stuartd我已经更新了问题和代码。如果有帮助,请告诉我。不知道你在问什么。你能举个例子说明如果缓存不可用,你希望发生什么吗?@stuartd我已经更新了问题和代码。如果有帮助,请告诉我。谢谢。我知道波利的情况,但从没想过在那里会有用。:)当然会,这对你想要重试并退回到日志记录的情况是有好处的。如果你不明白,你怎么能用Polly帮我解决这个问题。但基本上,您可以有重试(如果您愿意),以及用于记录或调用其他方法的回退策略。您可以将它们合并到一个策略中。:)但是,伟大的,简单但强大的东西。工作完美。我一直忙到凌晨3点才想办法解决这个问题。你的解决方案简单而有效。非常感谢@Sasaman太好了,它可以在很多情况下使用,把它放在袖子里^_^非常感谢。我知道波利的情况,但从没想过在那里会有用。:)当然会,这对你想要重试并退回到日志记录的情况是有好处的。如果你不明白,你怎么能用Polly帮我解决这个问题。但基本上,您可以有重试(如果您愿意),以及用于记录或调用其他方法的回退策略。您可以将它们合并到一个策略中。:)但是,伟大的,简单但强大的东西。工作完美。我一直忙到凌晨3点才想办法解决这个问题。你的解决方案简单而有效。非常感谢@Sasaman太好了,它可以在很多情况下使用,把它放在袖子里^_^
public class SomeRandomClass
{
private IDistributedCache cache;
public SomeRandomClass(IDistributedCache cache) { this.cache = cache; }
public async Task SaveToCache()
{
await cache.SetRecord("Key", "Value");
}
}