需求
黑马点评作业,将商店类型列表请求的结果写入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);
}
版权声明:本文为qq_41270560原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。