Spring Boot 操作 Redis教程

在 Redis 出现之前,我们的缓存框架各种各样,有了 Redis ,缓存方案基本上都统一了

使用 Java 操作 Redis 的方案很多,Jedis 是目前较为流行的一种方案,除了 Jedis ,还有很多其他解决方案,如下:

除了这些方案之外,还有一个使用也相当多的方案,就是 Spring Data Redis。

在传统的 SSM 中,需要开发者自己来配置 Spring Data Redis ,这个配置比较繁琐,主要配置 3 个东西:连接池、连接器信息以及 key 和 value 的序列化方案。

在 Spring Boot 中,默认集成的 Redis 就是 Spring Data Redis,默认底层的连接池使用了 lettuce ,开发者可以自行修改为自己的熟悉的,例如 Jedis。

Spring Data Redis 针对 Redis 提供了非常方便的操作模板 RedisTemplate 。这是 Spring Data 擅长的事情,那么接下来我们就来看看 Spring Boot 中 Spring Data Redis 的具体用法。

方案一:Spring Data Redis

创建工程

创建工程,引入 Redis 依赖:

创建成功后完整的 pom.xml 依赖如下:

   <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-test</artifactId><scope>test</scope></dependency></dependencies>

这里主要就是引入了 Spring Data Redis + 连接池。

配置 Redis 信息

接下来配置 Redis 的信息,信息包含两方面,一方面是 Redis 的基本信息,另一方面则是连接池信息:

spring.redis.host=localhost
spring.redis.database=0
spring.redis.port=6379
spring.redis.password=

自动配置

当开发者在项目中引入了 Spring Data Redis ,并且配置了 Redis 的基本信息,此时,自动化配置就会生效。

我们从 Spring Boot 中 Redis 的自动化配置类中就可以看出端倪:

@Configuration
@ConditionalOnClass({JedisConnection.class, RedisOperations.class, Jedis.class})
@EnableConfigurationProperties({RedisProperties.class})
public class RedisAutoConfiguration {public RedisAutoConfiguration() {}@Configurationprotected static class RedisConfiguration {protected RedisConfiguration() {}@Bean@ConditionalOnMissingBean(name = {"redisTemplate"})public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {RedisTemplate<Object, Object> template = new RedisTemplate();template.setConnectionFactory(redisConnectionFactory);return template;}

这个自动化配置类很好理解:

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

使用

接下来,

@RestController
public class HelloController {@AutowiredStringRedisTemplate stringRedisTemplate;@GetMapping("/set")public void set(){ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();ops.set("name","xiaoliu" );}@GetMapping("/get")public void get(){ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();System.out.println(ops.get("name"));}
}

另外需要注意 ,Spring Boot 的自动化配置,只能配置单机的 Redis ,如果是 Redis 集群,则所有的东西都需要自己手动配置,关于如何操作 Redis 集群,松哥以后再来和大家分享。

方案二:Spring Cache

通过 Spring Cache 的形式来操作 Redis,Spring Cache 统一了缓存江湖的门面

方案三:回归原始时代

第三种方案,就是直接使用 Jedis 或者 其他的客户端工具来操作 Redis ,这种方案在 Spring Boot 中也是支持的,虽然操作麻烦,但是支持。

Spring Boot 操作 Redis教程相关推荐

  1. Redis进阶-Jedis以及Spring Boot操作 Redis 5.x Cluster

    文章目录 Pre Jedis操作Redis Cluster 添加依赖 Code Spring Boot 操作Redis Cluster 引入 依赖 application.yml Code Pre R ...

  2. Spring Boot 操作 Redis 的各种实现

    欢迎关注方志朋的博客,回复"666"获面试宝典 一.Jedis,Redisson,Lettuce三者的区别 共同点:都提供了基于Redis操作的Java API,只是封装程度,具体 ...

  3. Spring boot整合Redis(入门教程)

    目录 源码分析 jedis VS lettuce 整合测试 导入依赖 配置连接 测试 存入字符串 存入对象 五大数据类型操作 自定义RedisConfig 存入对象 Redis工具类(常用API) 以 ...

  4. MongoDB最简单的入门教程之四:使用Spring Boot操作MongoDB

    Spring Boot 是一个轻量级框架,可以完成基于 Spring 的应用程序的大部分配置工作.Spring Boot的目的是提供一组工具,以便快速构建容易配置的Spring应用程序,省去大量传统S ...

  5. Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅)

    Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅) 1. 配置环境 在SpringBoot2.0版本以后,原来使用的jedis被替换成为了let ...

  6. Spring Boot基础学习笔记08:Spring Boot整合Redis

    文章目录 零.学习目标 1.熟悉Redis相关概念 2.掌握使用Spring Boot整合Redis 一.Redis概述 1.Redis简介 2.Redis优点 (1)存取速度快 (2)数据类型丰富 ...

  7. Spring Boot WebFlux 上手教程

    Spring Boot WebFlux 上手教程 背景 大家都知道,Spring Framework 是 Java/Spring 应用程序跨平台开发框架,也是 Java EE(Java Enterpr ...

  8. Linux 安装Redis-6.2.5,配置及使用(RDB与AOF持久化、sentinel机制、主从复制、Spring Boot 集成 Redis)

    CentOS 7 安装Redis-6.2.5版本 Redis采用的是基于内存的单进程 单线程模型 的KV数据库,由C语言编写.官方提供的数据是可以达到100000+的qps 应用场景: 令牌(Toke ...

  9. Spring boot整合Redis实现发布订阅(超详细)

    Redis发布订阅 基础知识 相关命令 订阅者/等待接收消息 发布者/发送消息 订阅者/成功接收消息 常用命令汇总 原理 Spring boot整合redis 导入依赖 Redis配置 消息封装类(M ...

最新文章

  1. 职场:5种幼稚表现,好多工作十年的人还在犯
  2. java threadgourp_Java Thread getThreadGroup()方法
  3. GitHub 4.6 万星:Windows Terminal 预览版开放下载!
  4. 嵌入式linux svn,Linux下配置subversion使其支持svn+ssh方式访问
  5. 临时设置mysql数据库最大连接数,重启后需重新设置
  6. mysql 协议测试_mysqlslap压力测试mysql
  7. 345.反转字符串中的元音字母
  8. 树莓派入门(八)--树莓派USB触摸屏校准及旋转屏幕方向后校准》
  9. 联想笔记本e43l_联想昭阳E43L电脑配置
  10. Layaair 3D场景使用
  11. c语言语法基础知识,英语语法_英语语法基础知识
  12. 通过Docker 安装 cloudera manager 平台
  13. 最新京东短信登录+傻妞机器人保姆级部署教程(2022/9/8)
  14. 对数函数定义域和值域_对数函数的定义域、值域、定点
  15. 什么是ASR、TTS?
  16. dma-buf 由浅入深(三) —— map attachment
  17. 看好股市的新人说港股投资
  18. 零基础怎样学习3d游戏建模,职业前景怎么样?
  19. WinForms控件手册
  20. autojs-读写ini

热门文章

  1. sheng的学习笔记-synchronized底层实现原理
  2. 国内首条刷脸支付坐地铁开始运营 一分钟可通过30-40名乘客
  3. xshell关闭后 数据库进程_关闭命令行或者xshell窗口后后台依旧执行命令
  4. 魔兽8.0最新服务器人口普查,魔兽世界8.0到底有多火_人口普查数据告诉你到底有多少玩家_3DM网游...
  5. 如何在Windows 10上手动清除或禁用Chrome缓存
  6. 重塑科技获评上海示范牵头单位,企业发展赢得广泛认可
  7. α波与睡眠梭形波的判读
  8. IT人士提高薪资、步入人生巅峰、迎娶白富美的终极秘诀
  9. stm32定时器定时中断
  10. 用户态和内核态的简单理解