JedisCluster源码解析

简介: jedisCluster的源码分析主要包括两部分,一个是集群的初始化,一个是集群的访问。集群初始化分析过程1、调用构造函数初始化2、创建连接redis集群对象3、继续调用构造函数初始化4、...

jedisCluster的源码分析主要包括两部分,一个是集群的初始化,一个是集群的访问。

集群初始化分析过程

1、调用构造函数初始化

img_414b0eddd42f5d1cf2502dae8f03a382.png

2、创建连接redis集群对象

img_8b73c24d20101d65694971fea62b8e61.png

3、继续调用构造函数初始化

img_42110495a54c8d73cedf0b876c398f8b.png

4、初始化slot和node的映射关系,也就是具体哪个slot放在那个node上

img_e805bd9631d04ac8cb5b1950d6c0c0ba.png

5、调用函数初始化slot和node关系

img_f2d94f16b60d4621eb5f4356b3fa1101.png

6、通过cluster slot命令返回主从关系并解析结果

192.168.0.103:6379> CLUSTER slots

1) 1) (integer) 5461  ---> start slot

2) (integer) 10922 --> end slot

3) 1) "192.168.0.103" --> master ip

2) (integer) 6380 --> master port

3) "84e20cc2619b5dbc811e5974f235b1ee365c0926"

4) 1) "192.168.0.103" --> slave ip

2) (integer) 6383 --> slave port

3) "b76596f357c000f3878f0e86adeb2f1a05128879"

img_25b8f94b8dd781a9d741c4f5381bdfe2.png


访问redis数据过程分析

1、get入口函数

img_f632e0d4137322c934fdc90a4ec5d1ac.png

2、通过key的CRC计算得到slot从而得到connection,如果获取异常失败会重现更新slot和对应的connection信息

img_96eac11673943614c5da4509f164d99f.png


img_1f7a52905608cc0d4c0004f8ace58dcd.png


img_92346e7ffd832dd519c47c69924820d9.png

3、获取返回结果

img_5832442f14f439064f5e2a222d9f16ec.png

img_f7e3995ecfe81f33655552bbb6f9c97a.png

之前以为连接失败后就没法获取数据了,现在发现在获取连接失败后其实是有重算机制的

目录
相关文章
|
22小时前
|
XML 人工智能 Java
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
|
9天前
yolo-world 源码解析(六)(2)
yolo-world 源码解析(六)
18 0
|
9天前
yolo-world 源码解析(六)(1)
yolo-world 源码解析(六)
12 0
|
9天前
yolo-world 源码解析(五)(4)
yolo-world 源码解析(五)
22 0
|
9天前
yolo-world 源码解析(五)(1)
yolo-world 源码解析(五)
31 0
|
9天前
yolo-world 源码解析(二)(2)
yolo-world 源码解析(二)
21 0
|
9天前
Marker 源码解析(二)(3)
Marker 源码解析(二)
15 0
|
9天前
Marker 源码解析(一)(4)
Marker 源码解析(一)
13 0
|
9天前
Marker 源码解析(一)(2)
Marker 源码解析(一)
17 0

推荐镜像

更多