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. 对缓存商品的超时续租。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章