因为redis只能保存字节数组,不能保存java对象,所以将java对象序列化之后保存,记录一下工具类
1 import java.io.ByteArrayInputStream; 2 import java.io.ByteArrayOutputStream; 3 import java.io.IOException; 4 import java.io.ObjectInputStream; 5 import java.io.ObjectOutputStream; 6 public class SerializeUtils { 7 public static byte[] serialize(Object obj){ 8 byte[] bytes = null; 9 try { 10 ByteArrayOutputStream baos=new ByteArrayOutputStream();; 11 ObjectOutputStream oos=new ObjectOutputStream(baos); 12 oos.writeObject(obj); 13 bytes=baos.toByteArray(); 14 baos.close(); 15 oos.close(); 16 } catch (IOException e) { 17 e.printStackTrace(); 18 } 19 return bytes; 20 } 21 public static Object deSerialize(byte[] bytes){ 22 Object obj=null; 23 try { 24 ByteArrayInputStream bais=new ByteArrayInputStream(bytes); 25 ObjectInputStream ois=new ObjectInputStream(bais); 26 obj=ois.readObject(); 27 } catch (Exception e) { 28 e.printStackTrace(); 29 } 30 return obj; 31 } 32 }
序列化之后就可以直接存储到redis中了!
参考链接 https://blog.csdn.net/kunchengyue/article/details/83246902
Protobuf 听说谷歌的这个工具序列化的性能要比jdk自带的要好,所以有兴趣的同学可以尝试一下