Skip to content
DAILY QUOTE

“ ”

对于店铺类型数据,一般变动会比较小,所以这里我们直接将店铺类型的数据持久化存储到Redis中

查询缓存通用步骤:(类比查找图书)

  • 找前台的系统查(查Redis)

  • 系统里有吗?(判断缓存命中) 有就直接抱走书(返回)。

  • 系统没有?去地下书库找!(查MySQL数据库)

  • 书库里有吗?(判断数据库命中) 没有就告诉用户“真没这本书”(返回错误)。

  • 书库里找到了!赶紧复印一份放到前台(写入Redis),方便下个人直接拿。

  • 把原件给用户(返回结果)。

  • 使用String类型的key-value结构缓存店铺类型数据

java
/**
 * 查询店铺类型列表。
 *
 * 作用:
 * 1.从Redis查询缓存;
 * 2.判断是否存在;
 * 3.存在;
 * 4.不存在,从数据库查;
 *
 * @return处理结果
 */
@Override
public Result queryTypeList() {
    String key= RedisConstants.SHOP_TYPE_KEY;
    //1.从Redis查询缓存
    String ShopTypeJson=stringRedisTemplate.opsForValue().get(key);
    //2. 判断是否存在
    if(StrUtil.isNotEmpty(ShopTypeJson)){
        //3.存在
        List<ShopType> shopTypes= JSONUtil.toList(ShopTypeJson,ShopType.class);
        return Result.ok(shopTypes);
    }
    //4.不存在,从数据库查
    List<ShopType> shopTypeList = this.query().orderByAsc("sort").list();
    if(shopTypeList==null||shopTypeList.isEmpty()){
        return Result.fail("店铺类型不存在");
    }
    stringRedisTemplate.opsForValue().set(key,JSONUtil.toJsonStr(shopTypeList));
    return Result.ok(shopTypeList);
}