9.從零開始搭建基於SpringCloud的京東整站_內容管理微服務_使用Redis集羣實現商品緩存

本次目標

使用Redis集羣實現商品緩存。在實際項目中,對於頻繁從數據庫獲取的熱門商品放入緩存,比如Redis或者其它第三方緩存應用,可以極大減少數據庫的訪問壓力。

實現過程

在數據庫中,增加商品是否緩存的字段。
在後臺商品管理中,添加是否緩存的選項:
在這裏插入圖片描述
在添加商品的邏輯中,加入緩存機制:

try {
    articleMapper.addArticle(article);
    //添加成功後,對信息進行緩存
    if(article.getIfCache()==1){
        String articleJson = objectMapper.writeValueAsString(article);
        redisTemplate.opsForValue().set("shopId" + article.getId(),articleJson);
    }
    return SysResult.ok();
}catch (Exception e){
    e.printStackTrace();
}

在獲取商品的代碼中,首先判斷Redis緩存中是否有改商品,如果有就從緩存獲取,如果沒有就從數據庫獲取:

try {
    String shopJson=redisTemplate.opsForValue().get("shopId" + id);
    Article article;
    if(null!=shopJson){//如果緩存中有數據,直接從緩存中讀取
        article = objectMapper.readValue(shopJson, Article.class);
    }else{
        article=articleMapper.getArticleById(id);
    }
    sysResult.setStatus(200);
    sysResult.setData(article);
    return sysResult;
}catch (Exception e){
    sysResult.setStatus(500);
    return sysResult;
}

暫未實現的功能

  1. 修改商品商品對緩存的更新。
  2. 對緩存商品的超時續租。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章