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

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

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

我先抛砖引玉

使用Json序列化

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

使用ObjectOutputStream序列化

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

迷茫
迷茫

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

全員に返信 (3)
巴扎黑

シリアル化中に考慮する必要がある問題は数多くあり、これらの問題に対して選択できるシリアル化ソリューションは多数あります。
しかし、シナリオによっては、いくつかの問題を無視できる場合があります。
これは良いテストです。この主題に役立つことを願っています: https://github.com/eishay/jvm-serializer...

いいねを押す+0
    Ty80

    org.springframework.data.redis.serializer.JdkSerializationRedisSerializer
    デフォルトではこのシリアル化になっているようですね。デフォルトのものを使用してください。

    いいねを押す+0
      阿神

      JSON の逆シリアル化は、汎用コレクションではあまり実用的ではありません。Java 自体のシリアル化は比較的重くて遅いため、理想的ではありません。そのため、protobuf などのシリアル化フレームワークを検討してください。実際に使用してみると、その効果は依然として非常に理想的です。

      いいねを押す+0
        最新のダウンロード
        詳細>
        ウェブエフェクト
        公式サイト
        サイト素材
        フロントエンドテンプレート
        私たちについて 免責事項 Sitemap
        PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!