为什么Redistemplate默认序列化器为JdkSerializationRedisSerializer?

最近在看SpringDataRedis中Redistemplate源码时发现其默认序列化器为JdkSerializationRedisSerializer,而这种序列化最后在redis中会以image.png如图所示存储,而如果将其序列化器指定为GenericJackson2JsonRedisSerializer则不会出现这种情况,而且当传入值为对象,会自动序列化为json存储到redis中去

所以想问一下,为什么SpringDataRedis中Redistemplate其默认序列化器为JdkSerializationRedisSerializer而不是GenericJackson2JsonRedisSerializer,官方是有什么考量吗?

阅读 2.2k
1 个回答

个人猜测,我用 JdkSerializationRedisSerializer 也不多。

  1. 这样存储最直接方便,不用考虑各种编码转换
  2. 不用考虑 json 序列化反序列化是否正确
  3. 能够直接存储图片或者其它不方便直接 json 序列化的二进制数据,只要实现了 Serializable 接口

目的就是能用即可,简单稳定可靠,适用性广。

推荐问题