Redis存储对象(序列化和反序列化)

代码以及实例:

package com.hp.test;

import redis.clients.jedis.Jedis;

import java.io.*;

public class Test3 implements Serializable {

    private static final long serialVersionUID = 1L;

    private String string;

    public static void main(String[] args) throws Exception {

    Jedis jedis = new Jedis("127.0.0.1" , 6379 , 1000); // redis 的连接

    Test3 test3 = new Test3();

    test3.string="这是序列化和反序列化";

    //把Test3对象存入到Redis中,并从Redis获取Test3对象

    jedis.set("person".getBytes(), serialize(test3));

    byte[] byt=jedis.get("person".getBytes());

    Test3 obj= (Test3) unserizlize(byt);

    System.out.println(obj.string);
}
//序列化
public static byte [] serialize(Object obj) throws Exception {
    ByteArrayOutputStream bai = null;
    ObjectOutputStream obi = null;
    try {
        bai=new ByteArrayOutputStream();
        obi=new ObjectOutputStream(bai);
        obi.writeObject(obj);
        return bai.toByteArray();
    } catch (IOException e) {
        e.printStackTrace();
    }finally {
        if(obi!=null){
            obi.close();
        }
        if(bai!=null){
            bai.close();
        }
    }
    return null;
}

//反序列化
public static Object unserizlize(byte[] byt) throws Exception {
    ObjectInputStream oii=null;
    ByteArrayInputStream bis=null;
    try {
        bis=new ByteArrayInputStream(byt);
        oii=new ObjectInputStream(bis);
        return oii.readObject();
    } catch (Exception e) {

        e.printStackTrace();
    }finally {
        if(oii!=null){
            oii.close();
        }
        if(bis!=null){
            bis.close();
        }
    }
    return null;
}

}

作者:旧歌
链接:https://www.cnblogs.com/wdyjt
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利

posted @ 2020-11-29 19:44  旧歌  阅读(336)  评论(0编辑  收藏  举报