作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在我的缓存 AddItem
和 GetItem
方法中,我在继续之前检查到 redis 的连接是否存在,是 ConnectionMultiplexer.IsConnected
昂贵的方法调用?还是我应该捕获异常并在这种情况下重新连接?
最佳答案
查看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;
你可以看到这里所做的所有工作都是返回两个 int 是否相等。
所以调用 ConnectionMultiplexer.IsConnected 属性似乎只做了很少的工作。
关于redis - "ConnectionMultiplexer.IsConnected"贵吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35517135/
我正在对 pandas DataFrame 创建进行基准测试,发现它比创建 numpy ndarray 更昂贵。 基准代码 from timeit import Timer setup = """ i
我是一名优秀的程序员,十分优秀!