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

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

目录
相关文章
|
3天前
|
Java Android开发
Android12 双击power键启动相机源码解析
Android12 双击power键启动相机源码解析
12 0
|
3天前
|
分布式计算 Java API
Java8 Lambda实现源码解析
Java8的lambda应该大家都比较熟悉了,本文主要从源码层面探讨一下lambda的设计和实现。
|
4天前
|
算法 Java Go
ArrayList源码解析
ArrayList源码解析
9 1
|
4天前
|
存储 安全 Java
【HashMap源码解析(一)(佬你不来看看?)】
【HashMap源码解析(一)(佬你不来看看?)】
10 1
|
11天前
|
缓存 Java 开发者
10个点介绍SpringBoot3工作流程与核心组件源码解析
Spring Boot 是Java开发中100%会使用到的框架,开发者不仅要熟练使用,对其中的核心源码也要了解,正所谓知其然知其所以然,V 哥建议小伙伴们在学习的过程中,一定要去研读一下源码,这有助于你在开发中游刃有余。欢迎一起交流学习心得,一起成长。
|
15天前
|
SQL 缓存 Java
|
15天前
|
XML 人工智能 Java
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
|
17天前
|
安全 Java Shell
Android13 adb input 调试命令使用和源码解析
Android13 adb input 调试命令使用和源码解析
27 0
Mixtral MOE 部分源码解析
Mixtral MOE 部分源码解析
21 0
|
23天前
|
XML Java 数据格式
Spring IOC的源码解析
【4月更文挑战第17天】Spring IOC(控制反转)的核心功能是通过依赖注入(DI)来管理对象的创建和它们之间的依赖关系。要深入理解Spring IOC的工作原理,我们可以从其源码分析入手,特别是关注如何创建和管理Bean以及依赖注入的实现
20 1

推荐镜像

更多