SpringBoot:SpringDataRedis缓存改造

在做一个SpringBoot微服务的项目,为了加快接口响应速度,把ProdOffer-销售品数据,改造成Redis缓存。

一.修改 pom.xml

在项目pom中引入SpringDataRedis:

<!-- SpringDataRedis -->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-redis</artifactId>
 </dependency>

二.修改 application.yml

添加Redis配置信息:

redis:
 host: 192.168.195.135
 port: 6379

三.代码改造

1.在 Service 中注入RedisTemplate

@Autowired
private RedisTemplate redisTemplate;

2.针对查询操作:

修改之前:

return prodOfferDao.findById(id).get();

首先从缓存中取,若没有取到,则查询DB并把结果放入缓存:

// 从缓存中提取
 ProdOffer prodOffer =
 (ProdOffer) redisTemplate.opsForValue().get("prodoffer_" + id);
 // 如果缓存没有则到数据库查询并放入缓存
 if(null==prodOffer){
 prodOffer = prodOfferDao.findById(id).get();
 redisTemplate.opsForValue().set("prodoffer_" + id,prodOffer);
 }

3.针对修改或者删除操作:

修改之前:

prodOfferDao.save(prodOffer);

在每次修改或者删除数据后,把缓存中的数据清空:

redisTemplate.delete("prodoffer_" + prodOffer.getId());// 清空缓存
prodOfferDao.save(prodOffer);

4.缓存过期时间设置

在每次set设置值的时候,可以指定过期时间:

redisTemplate.opsForValue().set("prodoffer_" + id,prodOffer,10, TimeUnit.SECONDS);// 设置10秒过期

改造过程不是很复杂,Redis改造后,通过Postman测试接口,响应时间有明显缩短。

SpringBoot:SpringDataRedis缓存改造

相关推荐