bug描述
一开始调用redisTemplate和 @Cacheable注解来进行缓存操作的时候,在redis库中发现所有vlue之前出现\xAC\xED\x00\x05t\x00\x08,一开始思路不对,以为是随机乱码,后来搜了一下,发现是redis序列化的问题默认用jdk,需要指定其他的序列化方式。我用的是springboot2,redis相关操作引用的是公司封装好的相关jar包,这个jar包里指定了用fastjson代替redis默认的jdk序列化。
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(redisConnectionFactory);
FastJsonRedisSerializer<Object> fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);
ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
redisTemplate.setValueSerializer(fastJsonRedisSerializer);
redisTemplate.setHashValueSerializer(fastJsonRedisSerializer);
redisTemplate.setKeySerializer(new StringRedisSerializer());