Документация Basic Usage для StackExchange.Redis объясняет, что ConnectionMultiplexer
является долговечным и, как ожидается, будет использоваться повторно.
Но как насчет нарушения соединения с сервером? ConnectionMultiplexer
автоматически восстанавливается, или необходимо написать код, как в этот ответ (цитируя этот ответ):
if (RedisConnection == null || !RedisConnection.IsConnected)
{
RedisConnection = ConnectionMultiplexer.Connect(...);
}
RedisCacheDb = RedisConnection.GetDatabase();
Является ли приведенным выше кодом что-то хорошее для обработки восстановления из разъединений, или это может привести к нескольким экземплярам ConnectionMultiplexer
? Вдоль тех же строк, как должно интерпретироваться свойство IsConnected
?
[Помимо этого, я считаю, что приведенный выше код - довольно плохая форма ленивой инициализации, особенно в многопоточных средах - см. статья Джона Скита о синглтонах].