黑马 Redis P37 List 方法

@Service
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {
     @Resource
    StringRedisTemplate stringRedisTemplate;
    @Override
    public Result queryTypeList() {
        //CACHE_SHOP_TYPE_KEY= 是字符串 "cache:shopType:" ,0和-1 表示从第一个取,直到倒数第一个。
        List<String> range = stringRedisTemplate.opsForList().range(CACHE_SHOP_TYPE_KEY, 0, -1);

        //判断缓存中是否存在,存在先通过JSONUtil工具将json转化成bean,再传给前端
        if (range.size()!=0){
            ArrayList<ShopType> shopTypeList=new ArrayList<>();
            for (String s:range) {
                shopTypeList.add(JSONUtil.toBean(s, ShopType.class));
            }
            //返回是需要返回存储bean的List,而不是存储string的List
            return Result.ok(shopTypeList);
        }
        //从数据库中查找 找出的都是bean对象的list
        List<ShopType> sortList = query().orderByDesc("sort").list();
        //判断缓存中是否存在,不存在直接返回错误
        if(sortList.size()==0){
            return Result.fail("店铺分类查询失败");
        }
        //判断存在后,通过JSONUtil工具将bean转化成json
        ArrayList<String> stringList=new ArrayList<>();
        for(ShopType shopType:sortList){
            String s = JSONUtil.toJsonStr(shopType);
           stringList.add(s);
        }
        //放入缓存中 设置有效期
        stringRedisTemplate.opsForList().leftPushAll(CACHE_SHOP_TYPE_KEY,stringList);
        stringRedisTemplate.expire(CACHE_SHOP_TYPE_KEY, CACHE_SHOP_TYPE_TTL, TimeUnit.HOURS);
        //返回List<Bean>
        return Result.ok(sortList);
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值