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

P37练习,欢迎大家互相学习讨论一下
public Result queryList() { List<ShopType> typeList = new ArrayList<>(); // 1.从Redis中获取列表数据 List<String> typeListStr = stringRedisTemplate.opsForList().range(CACHE_TYPE_LIST, 0, -1); // 2.判断是否存在 if (!typeListStr.isEmpty()) { // 3.如果存在,则直接返回 for (String str : typeListStr) { typeList.add(JSONUtil.toBean(str, ShopType.class)); } return Result.ok(typeList); } // 4.如果不存在,从数据库查询 LambdaQueryWrapper<ShopType> lambdaQueryWrapper = new LambdaQueryWrapper<>(); typeList = list(lambdaQueryWrapper); // 5.如果不存在,返回错误信息 if (typeList.isEmpty()) { return Result.fail("不存在类型"); } // 6.将数据存入Redis中 for (ShopType shopType : typeList) { typeListStr.add(JSONUtil.toJsonStr(shopType)); } stringRedisTemplate.opsForList().leftPushAll(CACHE_TYPE_LIST, typeListStr); // 7.返回 return Result.ok(typeList); }