欢迎光临散文网 会员登陆 & 注册

黑马程序员Redis入门到实战教程,深度透析redis底层原理+redis分布式

2023-06-26 17:51 作者:硕努力变强  | 我要投稿

p37使用list结构 配合stream流完成作业

@Override
public Result listShopType() {
    //从Redis查
    List<String> shopTypeCache = stringRedisTemplate.opsForList().range(CACHE_SHOP_TYPE_KEY, 0, -1);
    if (!CollectionUtils.isEmpty(shopTypeCache)){
        //如果存在 返回数据
        List<ShopType> collect = shopTypeCache.stream().map((item) -> {
            ShopType shopType1 = JSONUtil.toBean(item, ShopType.class);
            return shopType1;
        }).collect(Collectors.toList());
        return Result.ok(collect);
    }
    // 如果不存在 去数据库查
    List<ShopType> shopTypeList = lambdaQuery().orderByAsc(ShopType::getSort).list();
    if (CollectionUtils.isEmpty(shopTypeList)){
        return Result.fail("店铺分类信息为空");
    }
    // 将对象转换成json
    List<String> stringList = shopTypeList.stream().map((item) -> {
        String jsonShopType = JSONUtil.toJsonStr(item);
        return jsonShopType;
    }).collect(Collectors.toList());
    //保存到redis
    stringRedisTemplate.opsForList().leftPushAll(CACHE_SHOP_TYPE_KEY,stringList);
    stringRedisTemplate.expire(CACHE_SHOP_TYPE_KEY,2400, TimeUnit.MINUTES);
    return Result.ok(shopTypeList);
}


黑马程序员Redis入门到实战教程,深度透析redis底层原理+redis分布式的评论 (共 条)

分享到微博请遵守国家法律