springboot 怎么集成redis
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot 怎么集成redis相关的知识,希望对你有一定的参考价值。
1、在pom文件中引入即可<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
2、编写一个CacheService接口,使用redisCacheServiceImpl实现这个接口
官网的原文是这样的,也就是说,提供三个接口注入和你自己实现的其他实现类,默认是本地端口号为6379的redis
You can inject an auto-configured RedisConnectionFactory, StringRedisTemplate or vanilla RedisTemplate instance as you would any other Spring Bean.By default the instance will attempt to connect to a Redis server using localhost:6379: 参考技术A
完整的springboot集成redis方案介绍:SpringBoot整合Redis
springboot 集成redis 和http请求
参考技术A springboot 集成redis ,使用原生的jedis ,有点繁琐,本身springboot 已经集成了 redis并有 redisTemplate 可以使用,不过还是多少有点坑,需要提前说明的首先要引入jar包依赖
然后在 application 配置文件中 配置redis 的连接项
接着最简单的使用就是
或者
如果你配置环境对的话,redis 就可以使用了
springboot 在启动会自己初始化 RedisConnectionFactory redisConnectionFactory
这个对象,然后注入 ,并初始化化一个 RedisTemplate 对象,这样感觉无缝连接到redis了,但是吧,平时没问题,一旦时间久了就会出问题,就是redis 的序列化和反序列化问题,之前没有在log 里捕捉 这个反序列化的异常,后来捕捉到这个异常,
springboot在反序列话 redis,有点bug
如何破解 ,就是在初始化 RedisTemplate 这个bean 的时候就配置一下序列化和反序列化的属性,
声明一个 RedisService 公共类,并加 @Component 注解, 在这个里面初始化化 RedisTemplate,需要注意的是 就是你的key 对应的value存的是什么类型,如果是String
,就用new StringRedisSerializer(),如果是对象类 json ,就使用
new Jackson2JsonRedisSerializer(Object.class);或者
new GenericJackson2JsonRedisSerializer()),不然这个还会报错,
然后我们在这个里面 声明 get set exist remove redis key 的操作
最后使用 redis 的时候 ,直接注入 RedisService 就可以了
RedisService
另外 springboot 请求外部http的时候使用 RestTemplate 也有一个坑,就是默认的request buffer不释放,导致时间越久,请求头巨大,最后 就无法请求外部了,所以 可以这样使用
以上是关于springboot 怎么集成redis的主要内容,如果未能解决你的问题,请参考以下文章
springboot中怎么集成Swagger,让你拥有属于自己的api管理器
springboot中怎么集成Swagger,让你拥有属于自己的api管理器