JedisCluster源码解析

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值