今天用redis存储,发现客户端jedis提供的存储方法中存储的类型只有String和byte数据,没有能够存储对象的,网上发现可以序列化存储对象。这就开始了我第一次序列化之旅。
import redis.clients.RedisClinet; import redis.clients.SerializeUtil; import redis.clients.jedis.Jedis; 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实体我就不写了啊 redis.set( "good" .getBytes(), SerializeUtil. serialize(good)); byte [] value = redis.get( "good" .getBytes()); Object object = SerializeUtil. unserialize(value); 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())); String key= "goods-key" ; String temp=RedisClinet. getInstance().set(g, key); System. out .println(temp); Object o=RedisClinet. getInstance().get(key); System. out .println(g1.getName()); System. out .println(g1.getNum()); System. out .println(RedisClinet. getInstance().del(key)); import redis.clients.jedis.Jedis; 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 );; System. out .println( " init Redis " ); public static RedisClinet getInstance() public String set(Object object,String key) return jedis .set(key.getBytes(), SerializeUtil.serialize(object)); public Object get(String key) byte [] value = jedis .get(key.getBytes()); return SerializeUtil. unserialize(value); public boolean del(String key) return jedis .del(key.getBytes())>0; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class SerializeUtil { public static byte [] serialize(Object object) { ObjectOutputStream oos = null ; ByteArrayOutputStream baos = null ; baos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(baos); byte [] bytes = baos.toByteArray(); public static Object unserialize( byte [] bytes) { ByteArrayInputStream bais = null ; bais = new ByteArrayInputStream(bytes); ObjectInputStream ois = new ObjectInputStream(bais);