序列化 - Redis缓存Java对象的问题
迷茫
迷茫 2017-04-17 17:34:34
0
3
455

一个java bean 我知道有两种序列化方案
1、使用Json序列化为字符串
2、使用ObjectOutputStream 序列化为byte[]

不知道各位是使用哪种方式进行序列化存储的?各有什么优缺点

我先抛砖引玉

使用Json序列化

优点:缓存数据便于查阅,都是String字符串
缺点:java bean对象修改后,之前存储的数据,反序列化时会对新增字段赋予默认值,往往会带来业务逻辑上的问题

使用ObjectOutputStream序列化

优点:可以通过serialVersionUID控制版本号,如果bean对象发生修改,反序列化不会成功,能够有效避免上面的缺点
缺点:存储结果不便于查阅

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(3)
巴扎黑

序列化需要考慮的問題很多,針對這些問題也有很多序列化方案可以選擇。
但是根據場景不同,有些問題可以選擇忽略。
這裡有一個很好的測試,希望對題主有幫助:https://github.com/eishay/jvm-serializer...

Ty80

org.springframework.data.redis.serializer.JdkSerializationRedisSerializer
預設的看起來就是這個序列化吧?用預設的就好。

阿神

json的話反序列化對於泛型的集合並不是十分試用,java自身的序列化又比較沉重比較慢,也不是很理想,所以請考慮protobuf之類的序列化框架。實際使用,效果還是很理想的。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板