@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中了

本文介绍了一种在商品服务中使用缓存和序列化技术的实现方式,通过将数据库查询结果转换为JSON字符串并存储在Redis中,有效提高了数据访问效率。当请求商品目录时,首先从Redis缓存中获取JSON数据,若缓存中不存在,则从数据库查询并将结果序列化为JSON存储于缓存中。
1437

被折叠的 条评论
为什么被折叠?



