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測試接口,響應時間有明顯縮短。微服務

相關文章
相關標籤/搜索