将list缓存到redis中,黑马点评作业

需求

在这里插入图片描述
黑马点评作业,将商店类型列表请求的结果写入redis中
在这里插入图片描述

方案一 StringRedisTemplate.opsForValue()

将list转为json作为字符串存入redis中

public Result queryForList() {
        String key = "SHOP:TYPE:LIST";
        //查询reids
        String json = stringRedisTemplate.opsForValue().get(key);
        if(json!=null){
            return Result.ok(JSONUtil.toList(json,ShopType.class));
        }
        //查询数据库
        List<ShopType> list= query().orderByAsc("sort").list();

        //存入redis

        stringRedisTemplate.opsForValue().set(key,JSONUtil.toJsonStr(list));
        return Result.ok(list);
        

    }

方案二 stringRedisTemplate.opsForList()

作为有序列表存入redis

public Result queryForList() {
        String key = "SHOP:TYPE:LIST";

        //查询redis
        List<String> list =stringRedisTemplate.opsForList().range(key,0,-1);
        //System.out.println(list); //返回的是一个空列表
        if(!list.isEmpty()){
            //redis有数据
            List<ShopType> res =list.stream().
                    //将string转为ShopType
                    map(str-> JSONUtil.toBean(str,ShopType.class)).
                    collect(Collectors.toList());
            return Result.ok(res);
        }
        //查询数据库
        List<ShopType> res= query().orderByAsc("sort").list();
        //存入redis
        res.forEach(shopType -> stringRedisTemplate.opsForList().rightPush(key,JSONUtil.toJsonStr(shopType)));
        return Result.ok(res);
    }
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值