2016-02-19 2 views
2

В моих методах кэширования AddItem и GetItem, я проверяю, жив или нет соединение с redis, до того, как продолжить, ConnectionMultiplexer.IsConnected дорогой вызов метода? или я должен просто поймать исключение и снова подключиться в этом случае?"ConnectionMultiplexer.IsConnected" дорогой?

ответ

2

Глядя на ConnectionMultiplexer.IsConnected код:

public bool IsConnected 
{ 
    get 
    { 
     var tmp = serverSnapshot; 
     for (int i = 0; i < tmp.Length; i++) 
      if (tmp[i].IsConnected) return true; 
     return false; 
    } 
} 

Похоже, что вся проделанная здесь происходит через сервер конечных точек, чтобы увидеть, есть ли хотя-бы один сервер конечных точек связи.

ServerEndPoint.IsConnected Глядя на код:

public bool IsConnected 
{ 
    get 
    { 
     var tmp = interactive; 
     return tmp != null && tmp.IsConnected; 
    } 
} 

Вся работа делается здесь, возвращается интерактивный (типа PhysicalBridge) IsConnected значение.

Глядя на PhysicalBridge.IsConnected код:

public bool IsConnected => state == (int)State.ConnectedEstablished; 

Вы можете увидеть все работу здесь вернуться, равны ли два ИНТ.

Похоже, что очень мало работы сделано, вызвав свойство ConnectionMultiplexer.IsConnected.

Смежные вопросы