Redis 存储JavaBean对象(默认是不支持的,只能让该javabean继承序列化接口实现)

来源:互联网 发布:手机淘宝联盟自动发单 编辑:程序博客网 时间:2024/05/19 01:14

1 测试类

import redis.clients.RedisClinet;import redis.clients.SerializeUtil;import redis.clients.jedis.Jedis;public class Test {      /**      * Administrator      * @param args      */      public static void main(String[] args) {                       // 操作单独的文本串           Jedis redis= new Jedis( "10.2.31.38", 6379);                      redis.set( "key", "value");           System. out.println(redis.get( "key"));           System. out.println(redis.del( "key"));                       // 操作实体类对象           Goods good= new Goods();  // 这个Goods实体我就不写了啊           good.setName( "洗衣机" );           good.setNum(400);           good.setPrice(19l);           redis.set( "good".getBytes(), SerializeUtil. serialize(good));            byte[] value = redis.get( "good".getBytes());           Object object = SerializeUtil. unserialize(value);                       if(object!= null){                Goods goods=(Goods) object;                System. out.println(goods.getName());                System. out.println(goods.getNum());                System. out.println(goods.getPrice());           }           System. out.println(redis.del( "good".getBytes()));                       // 操作实体类对象2(实际上和上面是一样的)           String key= "goods-key";           Goods g= new Goods();           g.setName( "电风扇--d" );           g.setNum(200);           String temp=RedisClinet. getInstance().set(g, key);           System. out.println(temp);                      Object o=RedisClinet. getInstance().get(key);            if(o!= null)           {                Goods g1=(Goods)o;                System. out.println(g1.getName());                System. out.println(g1.getNum());           }          System. out.println(RedisClinet. getInstance().del(key));                }}
RedisClinet 客户端类

package redis.clients;import redis.clients.jedis.Jedis;/** * * @author ajun * */public class RedisClinet {      private static final String ip= "10.2.31.38";      private static final int port=6379;      protected static RedisClinet redis = new RedisClinet ();      protected static Jedis jedis = new Jedis( ip, port);;      static {                }    protected RedisClinet(){       System. out.println( " init Redis ");    }    public static RedisClinet getInstance()    {        return redis;    }       /**set Object*/      public String set(Object object,String key)     {            return jedis.set(key.getBytes(), SerializeUtil.serialize(object));     }           /**get Object*/      public Object get(String key)     {            byte[] value = jedis.get(key.getBytes());            return SerializeUtil. unserialize(value);     }           /**delete a key**/      public boolean del(String key)     {            return jedis.del(key.getBytes())>0;     }}

3 序列化工具类

package redis.clients;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;/** * @author Administrator * */public class SerializeUtil {      public static byte[] serialize(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) {           }            return null;     }      public static Object unserialize( byte[] bytes) {           ByteArrayInputStream bais = null;            try {                 // 反序列化                bais = new ByteArrayInputStream(bytes);                ObjectInputStream ois = new ObjectInputStream(bais);                 return ois.readObject();           } catch (Exception e) {           }            return null;     }}



0 0
原创粉丝点击