一个java bean 我知道有两种序列化方案
1、使用Json序列化为字符串
2、使用ObjectOutputStream 序列化为byte[]
不知道各位是使用哪种方式进行序列化存储的?各有什么优缺点
我先抛砖引玉
使用Json序列化
优点:缓存数据便于查阅,都是String字符串
缺点:java bean对象修改后,之前存储的数据,反序列化时会对新增字段赋予默认值,往往会带来业务逻辑上的问题
使用ObjectOutputStream序列化
优点:可以通过serialVersionUID控制版本号,如果bean对象发生修改,反序列化不会成功,能够有效避免上面的缺点
缺点:存储结果不便于查阅
연재 중에 고려해야 할 문제가 많으며 이러한 문제에 대해 선택할 수 있는 직렬화 솔루션이 많이 있습니다.
그러나 시나리오에 따라 일부 문제는 무시될 수 있습니다.
여기에 좋은 테스트가 있습니다. 주제에 도움이 되기를 바랍니다: https://github.com/eishay/jvm-serializer...
org.springframework.data.redis.serializer.JdkSerializationRedisSerializer
디폴트는 이런 직렬화인 것 같죠? 그냥 기본값을 사용하세요.
JSON의 역직렬화는 일반 컬렉션에 그다지 실용적이지 않습니다. Java 자체의 직렬화는 상대적으로 무겁고 느리기 때문에 이상적이지 않으므로 protobuf와 같은 직렬화 프레임워크를 고려해 보세요. 실제 사용에서 효과는 여전히 매우 이상적입니다.