packagezookeeper.seria;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importorg.nustaq.serialization.FSTConfiguration;importcom.esotericsoftware.kryo.Kryo;importcom.esotericsoftware.kryo.io.Input;importcom.esotericsoftware.kryo.io.Output;public classJRedisSerializationUtils {publicJRedisSerializationUtils() {
}static FSTConfiguration configuration =FSTConfiguration//.createDefaultConfiguration();
.createStructConfiguration();public static byte[] serialize(Object obj) {returnconfiguration.asByteArray(obj);
}public static Object unserialize(byte[] sec) {returnconfiguration.asObject(sec);
}public static byte[] kryoSerizlize(Object obj) {
Kryo kryo= newKryo();byte[] buffer = new byte[2048];try(
Output output= newOutput(buffer);
) {
kryo.writeClassAndObject(output, obj);returnoutput.toBytes();
}catch(Exception e) {
}returnbuffer;
}static Kryo kryo = newKryo();public static Object kryoUnSerizlize(byte[] src) {try(
Input input= newInput(src);
){returnkryo.readClassAndObject(input);
}catch(Exception e) {
}returnkryo;
}//jdk原生序列换方案
public static byte[] jdkserialize(Object obj) {try (ByteArrayOutputStream baos = newByteArrayOutputStream();
ObjectOutputStream oos= newObjectOutputStream(baos);) {
oos.writeObject(obj);returnbaos.toByteArray();
}catch(IOException e) {throw newRuntimeException(e);
}
}public static Object jdkdeserialize(byte[] bits) {try (ByteArrayInputStream bais = newByteArrayInputStream(bits);
ObjectInputStream ois= newObjectInputStream(bais);
) {returnois.readObject();
}catch(Exception e) {throw newRuntimeException(e);
}
}
}