Redis應用中的對象序列化

Redis 緩存對象時需要將其序列化,而何爲序列化,實際上就是將對象以字節形式存儲。這樣,不管對象的屬性是字符串、整型還是圖片、視頻等二進制類型,都可以將其保存在字節數組中。對象序列化後便可以持久化保存或網絡傳輸。需要還原對象時,只需將字節數組再反序列化即可。

java中序列化和反序列化方法:

public class SerializeUtil {
  // 序列化對象
  public static byte[] serialize(Object obj) throws IOException {
    ByteArrayOutputStream buf = new ByteArrayOutputStream();
    ObjectOutputStream out = new ObjectOutputStream(buf);
    out.writeObject(obj);
    return buf.toByteArray();
  }
  // 反序列化對象
  public static Object deserialize(byte[] bytes) throws 
        ClassNotFoundException, IOException{
    ObjectInputStream in = new ObjectInputStream(
    new ByteArrayInputStream(bytes));
    return in.readObject();
  }
}

Redis中緩存對象的方法:

// 緩存對象, 生存時間爲 H 小時
jedis.setex(key.getBytes(), 3600*H, SerializeUtil.serialize(obj));

// 從緩存中取出對象
obj = (目標類型)SerializeUtil.deserialize(jedis.get(key.getByets()));










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章