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測試介面,響應時間有明顯縮短。


※如何給MySQL資料庫添加遠程IP連接授權用戶
※RocketMQ源碼:通信協議設計及編解碼
TAG:程序員小新人學習 |