在使用redis的时候,因为redis将数据缓存到内存中,持久化到硬盘中,所以有时候我们需要将对象,序列化成字节码,可以节省空间吧
直接贴代码
public class RedisObjectSerializer implements RedisSerializer<Object> {
private Converter<Object, byte[]> serializer = new SerializingConverter();
private Converter<byte[], Object> deserializer = new DeserializingConverter();
static final byte[] EMPTY_ARRAY = new byte[0];
public Object deserialize(byte[] bytes) {
if (isEmpty(bytes)) {
return null;
}
try {
return deserializer.convert(bytes);
} catch (Exception ex) {
throw new SerializationException("Cannot deserialize", ex);
}
}
public byte[] serialize(Object object) {
if (object == null) {
return EMPTY_ARRAY;
}
try {
return serializer.convert(object);
} catch (Exception ex) {
return EMPTY_ARRAY;
}
}
private boolean isEmpty(byte[] data) {
return (data == null || data.length == 0);
}
}
本文介绍了一个自定义的RedisObjectSerializer类,用于实现Redis中对象的序列化与反序列化过程。该类实现了RedisSerializer接口,并通过Converter进行对象与字节数组之间的转换。

290

被折叠的 条评论
为什么被折叠?



