【发布时间】:2021-07-01 07:13:11
【问题描述】:
我在 ASP.NET 应用程序中使用 Redis 缓存作为分布式缓存。 它一直有效,直到 Redis 服务器变得不可用,问题是: 如何正确处理断线问题?
Redis 是这样配置的(Startup.cs):
services.AddDistributedRedisCache(...)
选项 AbortOnConnectFail 设置为 false
通过构造函数注入服务:
...
private IDistributedCache _cache
public MyService(IDistributedCache cache)
{
_cache = cache;
}
当 Redis 关闭时,以下代码会引发异常(StackExchange.Redis.RedisConnectionException: SocketFailure on 127.0.0.1:6379/Subscription ...):
var val = await _cache.GetAsync(key, cancellationToken);
我不认为使用反射来检查 _cache 对象内的连接状态是一个好方法。那么是否有任何“正确”的选择来处理它?
【问题讨论】:
标签: c# asp.net-core redis stackexchange.redis