/**
* 将对象-->byte[] (由于jedis中不支持直接存储object所以转换成byte[]存入)
*
* @param object
* @return
*/
private 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) {
logger.error("{}", e);
} finally {
try {
oos.close();
baos.close();
} catch (IOException e) {
logger.error("{}", e);
}
}
return null;
}
/**
* 将byte[] -->Object
*
* @param bytes
* @return
*/
private static Object unserialize(byte[] bytes) {
ByteArrayInputStream bais = null;
try {
// 反序列化
bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
} catch (Exception e) {
logger.error("{}", e);
} finally {
try {
bais.close();
} catch (IOException e) {
logger.error("{}", e);
}
}
return null;
}
// ------------------------ jedis util ------------------------
/**
* 存储简单的字符串或者是Object 因为jedis没有分装直接存储Object的方法,所以在存储对象需斟酌下
* 存储对象的字段是不是非常多而且是不是每个字段都用到,如果是的话那建议直接存储对象,
* 否则建议用集合的方式存储,因为redis可以针对集合进行日常的操作很方便而且还可以节省空间
*/
Jedis存储Java对象 - (Java序列化为byte数组方式)
最新推荐文章于 2022-11-29 18:07:50 发布