没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论





















Java 实现实现Redis存储复杂存储复杂json格式数据并返回给前端格式数据并返回给前端
主要介绍了Java 实现Redis存储复杂json格式数据并返回给前端操作,具有很好的参考价值,希望对大家有所帮
助。一起跟随小编过来看看吧
问题背景问题背景
在Java Web项目中,经常需要前端请求数据,后台从数据库中查询并计算最后返回json格式数据给前端。
而每次请求都需要计算一次可能比较浪费时间,这时我们可以将计算好的结果保存在redis中,下次请求时先判断redis中是否
已经存在,如果是则直接从redis里取出返回,因为是在内存中,所以比较快。
而自己在项目中遇到的json格式数据比较复杂,下面记录一下redis存储对象和json格式数据的几种方式以及遇到的问题。
存储方式存储方式
1. 直接使用直接使用String存储存储
String类型是Redis中最简单的类型了,每个key对应一个String,我们可以直接将要存储的对象转换成json字符串,代码如
下:
//存储
public static void setJsonString(String key, Object obj) {
Jedis jedis = RedisConnection.getJedis();
jedis.set(key, JSON.toJSONString(obj));
jedis.close();
}
//获取
public static String getJsonString(String key) {
Jedis jedis = RedisConnection.getJedis();
String value = jedis.get(key);
jedis.close();
return value;
}
这里是使用fastjson的相关函数toJSONString将对象转换为字符串进行存储。获取的时候直接返回json字符串给前端就可以
了。使用这种方式可能只能存储简单的json字符串,对于复杂格式的可能会解析错误。
2. 使用对象序列化方式存储使用对象序列化方式存储
先将对象以字节序列化存储,然后再反序列化得到对象,这里可以封装一个序列化和反序列化的工具类:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class SerializeUtil {
/*
* 序列化
* */
public static byte[] serizlize(Object object){
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
return bytes;
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(baos != null){
baos.close();
}
if (oos != null) {
oos.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return null;
}
资源评论


weixin_38703669
- 粉丝: 8
- 资源: 880
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
