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);