spring boot通过Spring Data Redis集成redis
在spring boot中,默认集成的redis是Spring Data Redis,Spring Data Redis针对redis提供了非常方便的操作模版RedisTemplate
idea中新建spring boot项目的时候,引入Spring Data Redis依赖:

创建成功后的项目依赖pom.xml如下:
其实spring-boot-starter-data-redis依赖中就包含了spring-data-redis依赖

application.properties中配置redis的信息:

可以看到默认连接的redis服务端主机和端口是localhost和6379
我的redis安装在了本地,端口也是默认的6379,所以application.properties中没有写东西
当开发者在项目中引入了Spring Data Redis,并配置了redis的基本信息,此时自动化配置就会生效,看一下spring boot中redis的自动化配置类

- 首先标记这是一个配置类,同时该配置在RedisOperations存在的情况下才会生效(即项目中引入了Spring Data Redis)
- 然后导入在application.properties中配置的属性
- 然后再导入连接池信息
- 最后,提供了两个bean,RedisTemplate和StringRedisTemplate,其中StringRedisTemplate是RedisTemplate的子类,两个方法基本一致,
不同之处主要体现在操作的数据类型不同,RedisTemplate中的两个泛型都是Object,意味着存储的key和value都可以是一个对象,而StringRedisTemplate
的两个泛型都是String,意味着StringRedisTemplate的key和value都只能是字符串。如果开发者没有提供相关的bean,这两个配置就会生效,否则不会生效
终端开启redis服务端,并保持开启状态,确保一会可以连得上redis服务端:

Spring Data Redis中真正操作redis可以采用RedisTemplate的方式
- 针对key的操作,相关的方法就在RedisTemplate中
- 针对具体数据类型的操作,相关的方法首先获取对应的数据类型,获取对应数据类型的操作方法是opsForXXX
在测试类中注入redisTemplate,redis支持的五种数据类型在RedisTemplate类中对应相应的方法:

以操作字符串的opfForValue()方法为例:



name前面的字符是由于使用了RedisTemplate导致的,RedisTemplate对key进行序列化之后对结果
RedisTemplate中,key默认的序列化方案是JdkSerializationRedisSerializer
而在StringRedisTemplate中,key默认的序列化方案是StringRedisSerializer,因此,如果使用StringRedisTemplate,默认情况下key前面不会有前缀
不过开发者也可以自行修改RedisRemplate中的序列化方案,也可以直接使用StringRedisTemplate

另外需要注意,spring boot的自动化配置,只能配置单机的redis,如果是redis集群,则所有的东西都需要手动配置
spring boot通过Spring Data Redis集成redis的更多相关文章
- Spring Boot(十三):整合Redis哨兵,集群模式实践
前面的两篇文章(Redis的持久化方案, 一文掌握Redis的三种集群方案)分别介绍了Redis的持久化与集群方案 -- 包括主从复制模式.哨兵模式.Cluster模式,其中主从复制模式由于不能自动做 ...
- Spring Boot 2.0 教程 | 快速集成整合消息中间件 Kafka
欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site ...
- Spring Boot 2.0 图文教程 | 集成邮件发送功能
文章首发自个人微信公众号: 小哈学Java 个人网站: https://www.exception.site/springboot/spring-boots-send-mail 大家好,后续会间断地奉 ...
- Spring Boot与Spring MVC集成启动过程源码分析
开源项目推荐 Pepper Metrics是我与同事开发的一个开源工具(https://github.com/zrbcool/pepper-metrics),其通过收集jedis/mybatis/ht ...
- Spring Boot 2.X(二):集成 MyBatis 数据层开发
MyBatis 简介 概述 MyBatis 是一款优秀的持久层框架,支持定制化 SQL.存储过程以及高级映射.它采用面向对象编程的方式对数据库进行 CRUD 的操作,使程序中对关系数据库的操作更方便简 ...
- Spring Boot 结合Spring Data结合小项目(增,删,查,模糊查询,分页,排序)
本次做的小项目是类似于,公司发布招聘信息,因此有俩个表,一个公司表,一个招聘信息表,俩个表是一对多的关系 项目整体结构: Spring Boot和Spring Data结合的资源文件 applicat ...
- spring boot系列(五)spring boot 配置spring data jpa (查询方法)
接着上面spring boot系列(四)spring boot 配置spring data jpa 保存修改方法继续做查询的测试: 1 创建UserInfo实体类,代码和https://www.cnb ...
- Spring Boot 整合Spring Data JPA
Spring Boot整合Spring Data JPA 1)加入依赖 <dependency> <groupId>org.springframework.boot</g ...
- Nacos Config客户端与Spring Boot、Spring Cloud深度集成
目录 Nacos与Spring Boot集成 @NacosPropertySource和@NacosValue com.alibaba.nacos.spring.core.env.NacosPrope ...
- Spring Boot中Spring data注解的使用
文章目录 Spring Data Annotations @Transactional @NoRepositoryBean @Param @Id @Transient @CreatedBy, @Las ...
随机推荐
- Scrum团队的最佳规模?
无论你在小型创业公司工作还是在大公司的新产品线工作,当团队人数越来越多时总会达到一个临界点.尽早识别这个临界点可以让您的团队避免进入低效阶段.每个产品都是不同的,团队合作也是如此.因此,拆分团队也需要 ...
- 1044/1045 - Access denied for user 'username'@'yourhost'
度娘很久都未能解决,大多都是修改配置文件,或是执行如下SQL: update user set Password=password('111111') where `user`='root'; 我本地 ...
- 对于synchronized的理解
一.synchronized 同步关键字,分为同步代码块和同步函数 二.对synchronized的理解(未加static关键字)(以下所说:对同步方法和同步代码块均适用) 对象的创建是以类为模板的 ...
- TypeScript泛型
泛型的概念 指不预先确定的数据类型,具体的类型要在使用的时候才能确定.咋一听,是不是觉得JavaScript本身就是这样?这是由于理解有误.前面说“在使用的时候确定”,而非在程序执行的时候确定. 泛型 ...
- [整理] jQuery插件开发
1.类级别的插件开发 类级别的插件开发,可似为给jQuery类添加方法,调用方式:$.你的方法(),如:$.ajax() 函数. 1.1.给jQuery类添加方法 $.alertMsg = funct ...
- C++性能查看-宏定义输出
之前由于想统计代码中每个模块加载时长,因此写了一个模块加载时长统计类,使用起来也是超级方便,只需要定义一个宏即可 使用方式如下: 1.统计函数性能 void func() { CONSUMING_OU ...
- MOOC C++笔记(四):运算符重载
第四周:运算符重载 基本概念 运算符重载,就是对已有的运算符(C++中预定义的运算符)赋予多重的含义,使同一运算符作用于不同类型的数据时导致不同类型的行为. 运算符重载的目的是:扩展C++中提供的运算 ...
- 04: OpenGL ES 基础教程03 纹理
前言 1:常用类: 1:纹理的作用 正文 一:常用类 上下文 顶点数据缓存 着色器 baseEffect 一:纹理 1.1: 纹理可以控制渲染的每个像素的颜色. 1.2: 纹素:与像素一样,保存每 ...
- (七十三)c#Winform自定义控件-资源加载窗体
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...
- 【linux】【jenkins】自动化运维七 整合sonarqube代码审查
1.安装插件:SonarQube Scanner for Jenkins 插件安装教程参考:https://www.cnblogs.com/jxd283465/p/11542680.html 2.So ...