一院领、為了提高查詢的性能,我們通常采用Redis緩存解決够吩。
1、Redis環(huán)境搭建
以docker的形式為例丈氓,搭建redis緩存
docker run -di --name=onelun_redis -p 6379:6379 redis
2周循、SpringDataRedis
Spring-data-redis是spring大家族的一部分,提供了在srping應(yīng)用中通過(guò)簡(jiǎn)單的配置訪問(wèn)redis服務(wù)万俗,對(duì)reids底層開(kāi)發(fā)包(Jedis湾笛、JRedis and RJC)進(jìn)行了高度封裝,RedisTemplate提供了redis各種操作闰歪。
3嚎研、實(shí)例
在項(xiàng)目的pom.xml引入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
修改application.yml,在spring節(jié)點(diǎn)下添加配置
redis:
host: 192.168.184.134
在service層引入RedisTemplate
@Autowired
private RedisTemplate redisTemplate;
/**
* 根據(jù)ID查詢實(shí)體
* @param id
* @return
*/
public Article findById(String id) {
// 從緩存中提取库倘,如果緩存沒(méi)有則到數(shù)據(jù)庫(kù)查詢并放入緩存
Article article= (Article)redisTemplate.opsForValue().get("article_"+id);
if(article==null) {
article = articleDao.findById(id).get();
redisTemplate.opsForValue().set("article_" + id, article);
// redisTemplate.opsForValue().set("article_" + id, article, 1, TimeUnit.DAYS); // 可設(shè)置過(guò)期時(shí)間1天
}
return article;
}
/**
* 修改
* @param article
*/
public void update(Article article) {
redisTemplate.delete( "article_" + article.getId()); // 刪除緩存
articleDao.save(article);
}
/**
* 刪除
* @param id
*/
public void deleteById(String id) {
redisTemplate.delete( "article_" + id); // 刪除緩存
articleDao.deleteById(id);
}