spring-data-redis序列化方式提供如下几种选择:

GenericToStringSerializer: 可以将任何对象泛化为字符串并序列化
Jackson2JsonRedisSerializer: 跟JacksonJsonRedisSerializer实际上是一样的
JacksonJsonRedisSerializer: 序列化object对象为json字符串
JdkSerializationRedisSerializer: 序列化java对象
StringRedisSerializer: 简单的字符串序列化

我们常见的
``

@Autowired
 StringRedisTemplate stringRedisTemplate; // t1@Autowired
 RedisTemplate<String, String> redisTemplate1; // t2@Autowired
 RedisTemplate redisTemplate; // t3@Autowired
 RedisTemplate<String, Object> redisTemplate2; // t4@Autowired(required = false)
 RedisTemplate<Object, Object> redisTemplate3; // t5

调试发现 t1 就是 t2,序列化方式为:StringRedisSerializer, t3 就是 t4, t5 序列化方式默认为:JdkSerializationRedisSerializer无法注入, 为null

为什么呢?

优劣比较:
JdkSerializationRedisSerializer序列化后长度最小,Jackson2JsonRedisSerializer效率最高。
如果综合考虑效率和可读性,牺牲部分空间,推荐key使用StringRedisSerializer,保持的key简明易读;value可以使用Jackson2JsonRedisSerializer
如果空间比较敏感,效率要求不高,推荐key使用StringRedisSerializer,保持的key简明易读;value可以使用JdkSerializationRedisSerializer

结论:
1.使用StringRedisSerializer进行序列化的值,在JAVA和redis中是一致的;
2.使用Jackson2JsonRedisSerializer进行序列化的值,在redis中的值比在JAVA中多了一对双引号;
3.使用JdkSerializationRedisSerializer进行序列化的值,在redis中的值是不可读的(以字节数组形式展示);