前言
单纯的使用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的差异,提供统一的接口规范来简化操作
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
- 通过@Bean创建我们自己的配置类在配置工厂的基础上添加我们自己自定义的配置
RedisOperations(封装了Redis的各种数据操作)
在RedisOperations类中有着很多封装的方法
我们能在其中发现我们一些常见的方法
随便点击一个常见的方法
我们能发现 其中每一种操作类型又都进行了接口封装
opsForValue
对应 ValueOperations
对应 string
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