Redis不支持直接将Java对象存储到数据库中,所以需要将java对象进行序列化得到字节数组,然后将字节数组存入到redis中,需要数据的时候就从redis数据库中取出字节数组,再经过反序列化将自己数组转换成对象使用(jdk序列化性能比谷歌公司的Protobuf序列化性能要差一些,而且序列化后的字节长度要也会长一些,所以推荐使用Protobuf.
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class SerializeUtils { public static byte[] serialize(Object obj){ byte[] bytes = null; try { ByteArrayOutputStream baos=new ByteArrayOutputStream();; ObjectOutputStream oos=new ObjectOutputStream(baos); oos.writeObject(obj); bytes=baos.toByteArray(); baos.close(); oos.close(); } catch (IOException e) { e.printStackTrace(); } return bytes; } public static Object deSerialize(byte[] bytes){ Object obj=null; try { ByteArrayInputStream bais=new ByteArrayInputStream(bytes); ObjectInputStream ois=new ObjectInputStream(bais); obj=ois.readObject(); } catch (Exception e) { e.printStackTrace(); } return obj; } }