java Spring Boot结合Redis 源码分析 对spring-boot-starter-data-redis的抽丝剥茧

1 篇文章 0 订阅
1 篇文章 0 订阅

前言

单纯的使用java客户端 自己去写连接redis的代码 每次连接的代码都是差不多的步骤,这样就显得代码冗余较多,并且很繁琐,而spring就将这个将其封装了起来,我们只需要写出核心配置,之后的步骤spring将会自动将其生成,这样就减少了很多重复的步骤

RedisTemplate 模板

使用连接池去连接Redis的时候,我们是通过spring提供的连接工厂去创建连接的

在 Spring Data Redis 方案中它提供了 4 种工厂模型

  • JredisConnectionFactory
  • JedisConnectionFactory
  • LettuceConnectionFactory
  • SrpConnectionFactory

而springboot默认为我们配置了 JedisConnectionFactory

如果需要配置不同的工厂 只需要在springboot的配置文件中去配置就行

Spring 对 Redis API的基本封装

Java有多种 Redis 的 API,如:Jedis Jredis、Lettuce 等。为了融合这些不同的 APL Spring 给出 一个对底层操作的接口 RedisConnection,通过这个接口就消除了各种连接 API的差异,提供统一的接口规范来简化操作

img

spring boot整合redis自动化配置原理分析

我们都知道spring boot自动化配置中的配置都是通过spring-configuration-metadata.json来约束的,同理redis也是这样的

{
"name": "spring.redis.host",
"type": "java.lang.String",
"description": "Redis server host.",
"sourceType": "org.springframework.boot.autoconfigure.data.redis.RedisProperties",
"defaultValue": "localhost"
}

从这能看出来redis的配置都是通过RedisProperties这个类来配置的,在这里面我们能看到众多的redis配置及默认配置

流程

1.spring boot通过application配置加载redis配置

2.解析封装成RedisProperties

3.根据@ConditionalOnClass判断使用哪个Redis客户端,封装成对应的工厂 比如 JedisConnectionFactory

  1. 通过@Bean创建我们自己的配置类在配置工厂的基础上添加我们自己自定义的配置

RedisOperations(封装了Redis的各种数据操作)

在RedisOperations类中有着很多封装的方法

《Spring Data Redis整合Redis流程源码分析》

我们能在其中发现我们一些常见的方法

《Spring Data Redis整合Redis流程源码分析》

随便点击一个常见的方法《Spring Data Redis整合Redis流程源码分析》

我们能发现 其中每一种操作类型又都进行了接口封装

opsForValue 对应 ValueOperations 对应 string

《Spring Data Redis整合Redis流程源码分析》

opsForSet 对应 SetOperations<K, V>对应 Set
在这里插入图片描述
在这里插入图片描述
opsForZSet 对应 ZSetOperations<K,V>对应Sorted Set
在这里插入图片描述
在这里插入图片描述
opsForList 对应 ListOperations<K,V> 对应List
在这里插入图片描述
在这里插入图片描述
opsForHash 对应 HashOperations<H, HK, HV>对应于Hash
在这里插入图片描述
在这里插入图片描述

参考博客

如果对篇博客的内容不太理解 可以去看看我参考的原博客
http://ddrv.cn/a/57505
https://blog.csdn.net/striveb/article/details/85019370

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值