前言:我们经常根据条件查询数据,如果每查询一次数据都经过数据库,随着数据量增多,对数据库性能都有一定的消耗,效率也会大大降低,这时,我们就可以用Redis,可以把经常查询的数据第一次存到Redis中,再此查询时直接通过Redis查询,不走数据库,这样大大提高了数据查询效率而且也降低了对数据库的压力。
一、我的Redis环境:docker,首先docker安装并启动Redis。(windows更简单可百度)
1,提前下载安装Redis到docker容器中
(docker search redis 命令来查看可用版本 docker pull redis:latest 下载最新Redis版本 已下载安装可忽略)
2,启动Redis
$ docker run -itd --name redis-test -p 6379:6379 redis
3,通过 docker ps 命令查看容器的运行信息:
二,配置Redis连接(yml文件中输入spring.redis.host)
扫描二维码关注公众号,回复:
13187654 查看本文章
三、敲代码
1.引入RedisTemplate
@Autowired private RedisTemplate redisTemplate;
2、接口添加Redis缓存
/**
* 根据ID查询实体
* @param id
* @return
*/
public Article findById(String id) {
//先从缓存中查询当前对象
Article article =(Article)redisTemplate.opsForValue().get("article_"+id);
//如果没有获取到
if (article==null)
{
//从数据库查询
article=articleDao.findById(id).get();
//存入缓存中 10,TimeUnit.SECONDS 表示十秒过期清理缓存
redisTemplate.opsForValue().set("article_"+id,article,10,TimeUnit.SECONDS);
}
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);
}
四,跑项目验证
1、run项目
2、查询已存在的数据
日志显示第一次查询缓存中没有该数据,直接走数据库并且将该数据存到Redis中
先清空控制台第二次查询该数据
发现没有日志,没走数据库,说明通过Redis查询该数据。