SpringBoot:SpringDataRedis緩存改造 原

    在做一個SpringBoot微服務的項目,爲了加快接口響應速度,把ProdOffer-銷售品數據,改造成Redis緩存。

一.修改 pom.xml

    在項目pom中引入SpringDataRedis:

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

 

二.修改 application.yml

    添加Redis配置信息:

  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.針對修改或者刪除操作:

    修改之前:

prodOfferDao.save(prodOffer);

    在每次修改或者刪除數據後,把緩存中的數據清空:

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

    4.緩存過期時間設置

    在每次set設置值的時候,可以指定過期時間:

redisTemplate.opsForValue().set("prodoffer_" + id,prodOffer,10, TimeUnit.SECONDS);// 設置10秒過期

 

    改造過程不是很複雜,Redis改造後,通過Postman測試接口,響應時間有明顯縮短。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章