使用Redis存储JSON时的注意事项
public Result queryById(Long id) {`
if (id == null) {
return Result.fail("id为空");
}
String key = CACHE_SHOP_KEY + id;
String shopJson = stringRedisTemplate.opsForValue().get(key);
if (StrUtil.isNotBlank(shopJson)) {
return Result.ok(shopJson);
}
Shop shop = getById(id);
if (shop == null) {
return Result.fail("商户不存在");
}
stringRedisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(shop), Duration.ofMinutes(CACHE_SHOP_TTL));
return Result.ok(shop);
}
如果从Redis中取出Json字符串后直接返回,那么前端接收到的数据是这样的
因此需要先转成对象再返回
public Result queryById(Long id) {
if (id == null) {
return Result.fail("id为空");
}
String key = CACHE_SHOP_KEY + id;
String shopJson = stringRedisTemplate.opsForValue().get(key);
if (StrUtil.isNotBlank(shopJson)) {
Shop shopBean = JSONUtil.toBean(shopJson, Shop.class);
return Result.ok(shopBean);
}
Shop shop = getById(id);
if (shop == null) {
return Result.fail("商户不存在");
}
stringRedisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(shop), Duration.ofMinutes(CACHE_SHOP_TTL));
return Result.ok(shop);
}
那么前端接收到的数据是这样的
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Roozen
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果