从零搭建SpringBoot脚手架中如何整合Redis作为缓存
这篇文章将为大家详细讲解有关从零搭建Spring Boot脚手架中如何整合redis作为缓存,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联专业为企业提供成武网站建设、成武做网站、成武网站设计、成武网站制作等企业网站建设、网页设计与制作、成武企业网站模板建站服务,10余年成武做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
1. 前言
缓存是一个系统应用必备的一种功能,除了在减轻数据库的压力之外。还在存储一些短时效的数据场景中发挥着重大作用,比如存储用户Token、短信验证码等等,目前缓存的选型还是比较多的,EHCACHE、HAZELCAST、CAFFEINE、COUCHBASE以及本文要整合的REDIS。接下来我们将会在kono脚手架项目中集成Spring Cache以及Redis。
2. 整合目标
使项目具有缓存功能,同时将默认的JDK序列化修改为Jackson序列化以存储一些对象,同时实现一些特定的个性化的缓存空间以满足不同场景下的不同缓存TTL时间需求。
3. 依赖集成
目前只需要引入下面的依赖即可:
org.springframework.boot
spring-boot-starter-data-redis
org.springframework.boot
spring-boot-starter-cache
org.apache.commons
commons-pool2
默认情况下spring-data-redis使用高性能的lettuce客户端实现,当然你可以替换为老旧的jedis。
4. 缓存及Redis配置
缓存以及Redis相关的配置项分别为spring.cache
和spring.redis
开头的配置,这里比较简单的配置为:
spring:
redis:
host: localhost
port: 6379
cache:
# type: REDIS
redis:
# 全局过期时间
time-to-live: 120
5. RedisTemplate个性化
默认情况下会有两个模板类被注入Spring IoC供我们使用,需要个性化配置来满足实际的开发。
一个是RedisTemplate
,主要用于对象缓存,其默认使用JDK序列化,我们需要更改其序列化方式解决一些问题,比如Java 8日期问题、JSON序列化问题。需要我们重写一下。
/**
* Redis的一些自定义配置.
*
* @author felord.cn
* @since 2020 /8/17 20:39
*/
@ConditionalOnClass(ObjectMapper.class)
@Configuration(proxyBeanMethods = false)
public class RedisConfiguration {
/**
* Redis template redis template.
*
* @param redisConnectionFactory the redis connection factory
* @return the redis template
*/
@Bean("redisTemplate")
public RedisTemplate