| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Spring Data Redis 是如何在 Jedis 和 Lettuce 之间切换的? -> 正文阅读 |
|
[Java知识库]Spring Data Redis 是如何在 Jedis 和 Lettuce 之间切换的? |
大家好,我是CodingLong! 我们在了解一项新技术时,一般要遵循这样的一个学习过程:这是什么?能做什么?要怎么用?什么原理? 当想要了解这项技术时,首选的还是看官网,因为它的介绍是最准确的。达到一定经验后,还是要了解下它的原理的,我们可以通过看源码的方式。看源码不仅能让我们了解它的实现细节,掌握其原理,更重要还能够学习它的设计思路,及对设计模式的运用。 分析源码是比较枯燥的,不过已经为你探好路了。下面按照这个思路开始今天的主题吧! 1 介绍Spring Data Redis是 Spring Data 系列的一部分,它提供了Spring应用程序对Redis的轻松配置和使用。它不仅提供了对Redis操作的高级抽象,还支持Jedis和Lettuce两种连接方式。 我们可以通过简单的配置就能连接Redis,并且可以切换Jedis和Lettuce两个连接方式。下面先来看看我们该如何使用它。 2 使用2.1 引入Redis依赖使用Spring Boot 提供的
2.2 自定义配置类自定义配置类,用于设置Key和Value的序列化。
2.3 修改Redis连接配置配置由Spring Boot提供,如果不改,会使用默认配置。并且该配置支持单节点、哨兵模式和集群模式,可以自由切换,这里就不多介绍了,网上一大堆。
2.4 使用RedisTemplate注入RedisTemplate后,就可以操作Redis了。 RedisTemplate有两个泛型,其中
3 源码分析从上面的使用来看,我们并不知道它用的是Jedis还是Lettuce。下面就通过源码来看看使用的哪种连接方式,并且该如何切换。 3.1 Redis自动配置类:RedisAutoConfiguration
我们在了解Spring Boot系列的组件时,一般是从它的自动配置类开始,Redis的自动配置类是 3.2 Lettuce连接配置类:LettuceConnectionConfiguration这里有两个条件注解,用于控制当前配置类能否生效:
这两个条件注解,只要有一个不生效,则当前配置类不生效。当该配置类生效后,会使用Lettuce相关依赖,来生成一个 上图中 3.3 Jedis连接配置类:JedisConnectionConfigurationJedis的配置类与Lettuce的配置类原理相同,同样会校验类路径中是否有Jedis相关依赖类。 同样该配置类生效后,会使用Jedis相关依赖,来生成一个 该类中还有一个注解 上图中 3.4 如何将连接方式切换为JedisSpring Data Redis 默认使用的是Lettuce,那么如何将连接方式切换为Jedis呢?其实有两种方式,但前提条件是要先引入Jedis相关依赖。 3.4.1 第一种方式:利用@ConditionalOnClass注解排除Lettuce依赖,只保留Jedis依赖。这样通过 3.4.2 第二种方式:利用@ConditionalOnProperty注解不排除Lettuce的依赖,也就是说这两种方式的依赖同时存在。 我们通过 3.4.3 对比第一种方式的优点是:不会加载多余的依赖包,推荐使用。 第二种方式的优点是:可以通过修改配置文件,自由切换连接方式,有特殊需要时也不失为一种选择。 原理就是这么简单,快去试试吧! 4 推荐阅读
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:44:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |