• ADADADADAD

    redis如何存储java对象[ 建站问答 ]

    建站问答 时间:2024-12-01 19:00:46

    作者:文/会员上传

    简介:

    redis存储java对象的方法:1、写一个java Bean,包含id和name两个字段,类名是Person。因为要实现序列化需求,所以该类实现Serializable接口。2、需要写一个序列化工具类,用于提供对

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    redis存储java对象的方法:1、写一个java Bean,包含id和name两个字段,类名是Person。因为要实现序列化需求,所以该类实现Serializable接口。2、需要写一个序列化工具类,用于提供对象的序列化和反序列化的工作;3、把Person对象写入Redis;4、用Jedis获取对象。

    具体操作如下:

    1、存储对象:写一个java Bean,包含id和name两个字段,类名是Person,该类实现Serializable接口。

    publicclassPersonimplementsSerializable{

    privateintid;

    privateStringname;

    publicPerson(intid,Stringname){

    this.id=id;

    this.name=name;

    }

    publicintgetId(){

    returnid;

    }

    publicStringgetName(){

    returnname;

    }

    }

    2、写一个序列化工具类,用于提供对象的序列化和反序列化的工作。

    publicclassSerializeUtil{

    publicstaticbyte[]serialize(Objectobject){

    ObjectOutputStreamoos=null;

    ByteArrayOutputStreambaos=null;

    try{

    //序列化

    baos=newByteArrayOutputStream();

    oos=newObjectOutputStream(baos);

    oos.writeObject(object);

    byte[]bytes=baos.toByteArray();

    returnbytes;

    }catch(Exceptione){

    }

    returnnull;

    }

    publicstaticObjectunserialize(byte[]bytes){

    ByteArrayInputStreambais=null;

    try{

    //反序列化

    bais=newByteArrayInputStream(bytes);

    ObjectInputStreamois=newObjectInputStream(bais);

    returnois.readObject();

    }catch(Exceptione){

    }

    returnnull;

    }

    }

    3、把Person对象写入Redis。

    publicvoidsetObject(){

    Personperson=newPerson(100,"alan");

    jedis.set("person:100".getBytes(),SerializeUtil.serialize(person));

    person=newPerson(101,"bruce");

    jedis.set("person:101".getBytes(),SerializeUtil.serialize(person));

    }

    上面代码运行后,到命令窗口读取对象看是否成功:

    redis127.0.0.1:6379>getperson:100

    "\xac\xed\x00\x05sr\x00\x15alanland.redis.Person\x05\xf4\x8d9A\xf4`\xb0\x02\x00\x02I\x00\x02idL\x00\x04namet\x00\x12Ljava/lang/String;xp\x00\x00\x00dt\x00\x04alan"

    4、用Jedis获取对象。

    publicPersongetObject(intid){

    byte[]person=jedis.get(("person:"+id).getBytes());

    return(Person)SerializeUtil.unserialize(person);

    }

    测试一下上一步存入的两个对象:

    Personperson=test.getObject(100);

    System.out.println(person.getId());

    System.out.println(person.getName());

    person=test.getObject(101);

    System.out.println(person.getId());

    System.out.println(person.getName());

    Java控制台输入:

    100

    alan

    101

    bruce

    redis如何存储java对象.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: redisjava对象