SpringBoot整合Redis和Spring Cache

本文介绍了如何在SpringBoot应用中整合Redis作为缓存,并利用Spring Cache进行方法级别的缓存管理。首先,需要在pom.xml添加Redis依赖,并在application.yml配置Redis连接。然后,通过@EnableCaching注解启用缓存支持。使用@Cacheable和@CacheEvict注解分别标记需要缓存的方法和清除缓存的操作。确保在更新数据时及时清理缓存。
摘要由CSDN通过智能技术生成

Redis
第一步在你的pom.xml依赖

		 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

第二步改application.yml,在spring节点下添加配置

redis:
   host: 127.0.0.1

不填端口号就是6379

第三步

    @Autowired
    private RedisTemplate redisTemplate;
     /**
     * 根据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();
            //存入到缓存中
            redisTemplate.opsForValue().set("article_" + id, article, 10, TimeUnit.MINUTES);
        }
        return article;
    }

注意一点你进行其他操作记得要删除缓存

 /**
     * 增加
     *
     * @param article
     */
    public void add(Article article) {
        article.setId(idWorker.nextId() + "");
        articleDao.save(article);
    }

设置缓存时间为一天

redisTemplate.opsForValue().set("article_" + id, article,1,TimeUnit.DAYS);

Spring Cache
Spring Cache使用方法与Spring对事务管理的配置相似。Spring Cache的核心就是对某
个方法进行缓存,其实质就是缓存该方法的返回结果,并把方法参数和结果用键值对的
方式存放到缓存中,当再次调用该方法使用相应的参数时,就会直接从缓存里面取出指
定的结果进行返回。
常用注解:
@Cacheable-------使用这个注解的方法在执行后会缓存其返回结果。
@CacheEvict--------使用这个注解的方法在其执行前或执行后移除Spring Cache中的某些元素。
第一步:在你的启动类上添加@EnableCaching开启缓存支持
第二步:在你要缓存的方法上加添加缓存注解,这样当此方法第一次运行,在缓存中没有找到
对应的value和key,则将查询结果放入缓存

 /**
* 根据ID查询实体
* @param id
* @return
*/
@Cacheable(value="gathering",key="#id")
public Gathering findById(String id) {
		return gatheringDao.findById(id).get();
}

注意一点,进行其他操作的时候记得要清除缓存

/**
* 修改
* @param gathering
*/
@CacheEvict(value="gathering",key="#gathering.id")
public void update(Gathering gathering) {
         gatheringDao.save(gathering);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值