SpringBoot:SpringDataRedis缓存改造

    在作一个SpringBoot微服务的项目,为了加快接口响应速度,把ProdOffer-销售品数据,改形成Redis缓存。java

一.修改 pom.xml

    在项目pom中引入SpringDataRedis:redis

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

 

二.修改 application.yml

    添加Redis配置信息:spring

redis:
    host: 192.168.195.135
    port: 6379

 

三.代码改造

    1.在 Service 中注入RedisTemplate

@Autowired
private RedisTemplate redisTemplate;

    2.针对查询操做:

    修改以前:数据库

return prodOfferDao.findById(id).get();

    首先从缓存中取,若没有取到,则查询DB并把结果放入缓存:缓存

// 从缓存中提取
        ProdOffer prodOffer =
                (ProdOffer) redisTemplate.opsForValue().get("prodoffer_" + id);
        // 若是缓存没有则到数据库查询并放入缓存
        if(null==prodOffer){
            prodOffer = prodOfferDao.findById(id).get();
            redisTemplate.opsForValue().set("prodoffer_" + id,prodOffer);
        }

    3.针对修改或者删除操做:

    修改以前:bash

prodOfferDao.save(prodOffer);

    在每次修改或者删除数据后,把缓存中的数据清空:app

redisTemplate.delete("prodoffer_" + prodOffer.getId());// 清空缓存
prodOfferDao.save(prodOffer);

    4.缓存过时时间设置

    在每次set设置值的时候,能够指定过时时间:spring-boot

redisTemplate.opsForValue().set("prodoffer_" + id,prodOffer,10, TimeUnit.SECONDS);// 设置10秒过时

 

    改造过程不是很复杂,Redis改造后,经过Postman测试接口,响应时间有明显缩短。微服务

相关文章
相关标签/搜索