在作一個SpringBoot微服務的項目,爲了加快接口響應速度,把ProdOffer-銷售品數據,改形成Redis緩存。java
在項目pom中引入SpringDataRedis:redis
<!-- SpringDataRedis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
添加Redis配置信息:spring
redis: host: 192.168.195.135 port: 6379
@Autowired private RedisTemplate redisTemplate;
修改以前:數據庫
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); }
修改以前:bash
prodOfferDao.save(prodOffer);
在每次修改或者刪除數據後,把緩存中的數據清空:app
redisTemplate.delete("prodoffer_" + prodOffer.getId());// 清空緩存 prodOfferDao.save(prodOffer);
在每次set設置值的時候,能夠指定過時時間:spring-boot
redisTemplate.opsForValue().set("prodoffer_" + id,prodOffer,10, TimeUnit.SECONDS);// 設置10秒過時
改造過程不是很複雜,Redis改造後,經過Postman測試接口,響應時間有明顯縮短。微服務