spring boot通过Spring Data Redis集成redis

时间:2022-09-13 12:38:36

在spring boot中,默认集成的redis是Spring Data Redis,Spring Data Redis针对redis提供了非常方便的操作模版RedisTemplate

idea中新建spring boot项目的时候,引入Spring Data Redis依赖:

spring boot通过Spring Data Redis集成redis

创建成功后的项目依赖pom.xml如下:

其实spring-boot-starter-data-redis依赖中就包含了spring-data-redis依赖

spring boot通过Spring Data Redis集成redis

application.properties中配置redis的信息:

spring boot通过Spring Data Redis集成redis

可以看到默认连接的redis服务端主机和端口是localhost和6379

我的redis安装在了本地,端口也是默认的6379,所以application.properties中没有写东西

当开发者在项目中引入了Spring Data Redis,并配置了redis的基本信息,此时自动化配置就会生效,看一下spring boot中redis的自动化配置类

spring boot通过Spring Data Redis集成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 boot通过Spring Data Redis集成redis

Spring Data Redis中真正操作redis可以采用RedisTemplate的方式

  • 针对key的操作,相关的方法就在RedisTemplate中
  • 针对具体数据类型的操作,相关的方法首先获取对应的数据类型,获取对应数据类型的操作方法是opsForXXX

在测试类中注入redisTemplate,redis支持的五种数据类型在RedisTemplate类中对应相应的方法:

spring boot通过Spring Data Redis集成redis

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

spring boot通过Spring Data Redis集成redis

spring boot通过Spring Data Redis集成redis

spring boot通过Spring Data Redis集成redis

name前面的字符是由于使用了RedisTemplate导致的,RedisTemplate对key进行序列化之后对结果

RedisTemplate中,key默认的序列化方案是JdkSerializationRedisSerializer

而在StringRedisTemplate中,key默认的序列化方案是StringRedisSerializer,因此,如果使用StringRedisTemplate,默认情况下key前面不会有前缀

不过开发者也可以自行修改RedisRemplate中的序列化方案,也可以直接使用StringRedisTemplate

spring boot通过Spring Data Redis集成redis

另外需要注意,spring boot的自动化配置,只能配置单机的redis,如果是redis集群,则所有的东西都需要手动配置

spring boot通过Spring Data Redis集成redis的更多相关文章

  1. Spring Boot(十三):整合Redis哨兵,集群模式实践

    前面的两篇文章(Redis的持久化方案, 一文掌握Redis的三种集群方案)分别介绍了Redis的持久化与集群方案 -- 包括主从复制模式.哨兵模式.Cluster模式,其中主从复制模式由于不能自动做 ...

  2. Spring Boot 2.0 教程 | 快速集成整合消息中间件 Kafka

    欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site ...

  3. Spring Boot 2.0 图文教程 | 集成邮件发送功能

    文章首发自个人微信公众号: 小哈学Java 个人网站: https://www.exception.site/springboot/spring-boots-send-mail 大家好,后续会间断地奉 ...

  4. Spring Boot与Spring MVC集成启动过程源码分析

    开源项目推荐 Pepper Metrics是我与同事开发的一个开源工具(https://github.com/zrbcool/pepper-metrics),其通过收集jedis/mybatis/ht ...

  5. Spring Boot 2.X(二):集成 MyBatis 数据层开发

    MyBatis 简介 概述 MyBatis 是一款优秀的持久层框架,支持定制化 SQL.存储过程以及高级映射.它采用面向对象编程的方式对数据库进行 CRUD 的操作,使程序中对关系数据库的操作更方便简 ...

  6. Spring Boot 结合Spring Data结合小项目(增,删,查,模糊查询,分页,排序)

    本次做的小项目是类似于,公司发布招聘信息,因此有俩个表,一个公司表,一个招聘信息表,俩个表是一对多的关系 项目整体结构: Spring Boot和Spring Data结合的资源文件 applicat ...

  7. spring boot系列(五)spring boot 配置spring data jpa (查询方法)

    接着上面spring boot系列(四)spring boot 配置spring data jpa 保存修改方法继续做查询的测试: 1 创建UserInfo实体类,代码和https://www.cnb ...

  8. Spring Boot 整合Spring Data JPA

    Spring Boot整合Spring Data JPA 1)加入依赖 <dependency> <groupId>org.springframework.boot</g ...

  9. Nacos Config客户端与Spring Boot、Spring Cloud深度集成

    目录 Nacos与Spring Boot集成 @NacosPropertySource和@NacosValue com.alibaba.nacos.spring.core.env.NacosPrope ...

  10. Spring Boot中Spring data注解的使用

    文章目录 Spring Data Annotations @Transactional @NoRepositoryBean @Param @Id @Transient @CreatedBy, @Las ...

随机推荐

  1. &lbrack;计算机网络&rsqb;简易http server程序

    好久没输出了,知识还是要写下总结才能让思路更加清晰.最近在学习计算机网络相关的知识,来聊聊如何编写一个建议的HTTP服务器. 这个http server的实现源代码我放在了我的github上,有兴趣的 ...

  2. HTTPS 客户端验证 服务端证书流程

    网上的文章很多, 但是对摘要的验证流程不够通俗易懂. QQ截图20160420114804.png 证书预置和申请 1:客户端浏览器会预置根证书, 里面包含CA公钥2:服务器去CA申请一个证书3: C ...

  3. 好用的ajax后台框架

    dwz 简单实用的国产jquery Ui框架 http://www.j-ui.com/#_blank

  4. BZOJ-2115-Xor-WC2011

    叙述性说明 分析 我把文库里的粘了过来. 仅仅知道点1到点N的一条路径和图中若干个环.就能通过异或,表示成全部路径.那么.须要多少环才干保证必然能表示成全部路径呢?事实上.并不须要非常多, 由于一些环 ...

  5. 关于浏览器和HTTP协议

    关于浏览器 浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示想要访问的网络资源.这里资源一般是指 HTML 文档,图片等其他的类型.资源的位置由用户使用 URL(统一资源标示符)指定. 而浏览 ...

  6. 网络流之最大流Dinic算法模版

    /* 网络流之最大流Dinic算法模版 */ #include <cstring> #include <cstdio> #include <queue> using ...

  7. 关于&OpenCurlyDoubleQuote;svn&colon; Can&&num;39&semi;t connect to host &&num;39&semi;&ast;&period;&ast;&period;&ast;&period;&ast;&&num;39&semi;&colon; 由于连接方在一段时间后没有正确答复或连接”的解决方法

    阿里云服务器环境(PHP+Nginx+MySQL) [原因1]svnserve.conf 没写好,当然你先备份一份先: cp svnserve.conf svnserve.conf.bak 打开此文件 ...

  8. 如何批量删除word文档中的超级链接?

    有时候从网页上copy来的文章中,会带有非常多的链接,这些链接很烦人是吧?如何批量删除(一次性全部删除)word文章中的超链接呢? 有些朋友说,Ctrl+A全选文章,然后点击格式工具栏上的“清除格式” ...

  9. poj3666(DP&plus;离散化)

    题目链接:http://poj.org/problem?id=3666 思路: 看了讨论区说本题的数据比较弱,只需要考虑不减序列即可,比较懒,所以我也只写了这一部分的代码,思路都一样,能AC就行了. ...

  10. Coursera SDN M1&period;1 SDN History&colon; Central Control

    source Structure 1.讨论SDN的时间线,从1980s至今. 2.认识到SDN背后的原则和idea. 3.识别SDN起源的架构主题. NOTE Four Chapter in SDN ...