常用于数据量巨大的情况,加快第二次的响应速度。
/**
* 获取分类列表
*/
@Override
public R categoryList() {
//先判断一下,redis中是否有缓存
String s = redisTemplate.opsForValue().get("categoryList");
if (s != null) {
//将s解析为Category类的一个集合
List<Category> categories = JSON.parseArray(s, Category.class);
log.info("从redis缓存中获取的列表信息");
return R.success(categories);
}
//没有的话,就去MYSQL数据库中查询
List<Category> select = categoryMapper.select();
log.info("获取分类列表的方法");
if (select.size() != 0) {
log.info("从数据库获得列表信息");
//JSON.toJSONString(select)将list集合转换为String
redisTemplate.opsForValue().set("categoryList", JSON.toJSONString(select), 1, TimeUnit.MINUTES);
return R.success(select);
}
return R.error("查询分类列表失败");
}