@Override
public Map<String, List<Catelog2Vo>> getCatelogJson() {
//给缓存中放json字符串,拿出的json字符串,还用逆转为能用的对象类型,【序列化与反序列化】
//1、加入缓存逻辑,缓存中存的数据是json字符串
//JSON跨语言,跨平台兼容
String catalogJSON = redisTemplate.opsForValue().get("catalogJSON");
if(StringUtils.isEmpty(catalogJSON)){
//2、缓存中没有,查询数据库
Map<String, List<Catelog2Vo>> catelogJsonFromDb = getCatelogJsonFromDb();
//3、查到的数据再放入缓存,将对象转为json放入缓存中
String s = JSON.toJSONString(catelogJsonFromDb);
redisTemplate.opsForValue().set("catalogJSON", s);
return catelogJsonFromDb;
}
//转为我们指定的对象
Map<String, List<Catelog2Vo>> result = JSON.parseObject(catalogJSON, new TypeReference<Map<String, List<Catelog2Vo>>>() {
});
return result;
}
重启商品服务
http://localhost:12000/index/catalog.json
可以看到存入了redis中了