Gig*_*igi 15 c# redis stackexchange.redis
StackExchange.Redis 的基本用法文档解释说它ConnectionMultiplexer是长期存在的并且有望被重用.
但是什么时候与服务器的连接被打破了?是否ConnectionMultiplexer自动重新连接,或者是否需要按照此答案编写代码(引用该答案):
if (RedisConnection == null || !RedisConnection.IsConnected)
{
RedisConnection = ConnectionMultiplexer.Connect(...);
}
RedisCacheDb = RedisConnection.GetDatabase();
Run Code Online (Sandbox Code Playgroud)
以上代码是否适合处理断开连接的恢复,或者它实际上会导致多个ConnectionMultiplexer实例?同样,如何IsConnected解释财产?
[旁白:我相信上面的代码是一种非常糟糕的延迟初始化形式,特别是在多线程环境中 - 参见Jon Skeet关于Singletons的文章 ].
Mik*_*der 27
以下是Azure Redis缓存团队推荐的模式:
private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => {
return ConnectionMultiplexer.Connect("mycache.redis.cache.windows.net,abortConnect=false,ssl=true,password=...");
});
public static ConnectionMultiplexer Connection {
get {
return lazyConnection.Value;
}
}
Run Code Online (Sandbox Code Playgroud)
一些要点:
| 归档时间: |
|
| 查看次数: |
14987 次 |
| 最近记录: |