Jedis(二) Connection类的实现 - wtstengshen/blog-page GitHub Wiki
在Jedis既然是client,就肯定需要和redis server进行socket连接,于是就看了一下Jedis中Connection类的代码实现; ####1,Connection类 Connection从字面意思就可以看出来,是为了建立Socket连接,提供了InputStream和OutputStream的封装,发送和接受redis命令的方法,分的很开,可以让上层代码更加方便的调用;下边看一下里边的Socket是如何建立的;
if (!isConnected()) {
try {
socket = new Socket();
// 对于处理Time_wait状态下的socket地址可以进行重用
socket.setReuseAddress(true);
socket.setKeepAlive(true); // tcp的keepAlive
socket.setTcpNoDelay(true); //
socket.setSoLinger(true, 0); //
socket.connect(new InetSocketAddress(host, port), connectionTimeout);
socket.setSoTimeout(soTimeout);
outputStream = new RedisOutputStream(socket.getOutputStream());
inputStream = new RedisInputStream(socket.getInputStream());
} catch (IOException ex) {
broken = true;
throw new JedisConnectionException(ex);
}
}