- A+
所属分类:linux技术
1.Redis环境搭建
以docker的形式搭建Redis 服务
docker run ‐di ‐‐name=tensquare_redis ‐p 6379:6379 redis
2.SpringDataRedis
Spring-data-redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问redis服务,对reids底层开发包(Jedis, JRedis, and RJC)进行了高度封装,RedisTemplate提供了redis各种操作。
3.实现项目的缓存处理
3.1 查询文章操作缓存
(1)在项目 的pom.xml引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐data‐redis</artifactId>
</dependency>
(2)修改application.yml ,在spring节点下添加配置
redis:
host: 192.168.184.134
(3)修改Service 引入RedisTemplate,并修改findById方法
@Autowired
private RedisTemplate redisTemplate;
/**
* 根据ID查询实体
* @param id
* @return
*/
public Label findById(String id) {
//从缓存中提取
Label label=(Label)redisTemplate.opsForValue().get("Label_"+id);
// 如果缓存没有则到数据库查询并放入缓存
if(label==null) {
label= labelDao.findById(id).get();
redisTemplate.opsForValue().set("label_" + id, label);
}
return label;
}
3.2 修改或删除后清除缓存
/**
* 修改
* @param label
*/
public void update(Label label) {
redisTemplate.delete( "label_" + label.getId() );//删除缓存
labelDao.save(label);
}
/**
* 删除
* @param id
*/
public void deleteById(String id) {
redisTemplate.delete( "label_" + id );//删除缓存
labelDao.deleteById(id);
}
3.3 缓存过期处理
修改findById方法 ,设置1天的过期时间
redisTemplate.opsForValue().set("label_" + id, label,1,TimeUnit.DAYS);
为了方便测试,我们可以把过期时间改为10秒,然后观察控制台输出
redisTemplate.opsForValue().set("label_" + id, label,10,TimeUnit.SECONDS);