Spring boot使用redis缓存出现乱码
有时候我们会发现,我们存入缓存到redis时会出现乱码,但是取出又不会,这是因为redis使用了java的序列化,我们只需要更改redis的序列配置就可以解决这个问题了(文章对新手不是很友好,需简单了解springboot怎么使用redis存取数据)
解决步骤:
- 创建一个redis配置类:MyRedisConfiguration,继承CachingConfigurerSupport类
@Configuration
public class MyRedisConfiguration extends CachingConfigurerSupport {
@Bean
public RedisTemplate<Object, Object> myredisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate template = new RedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
template.setDefaultSerializer(jackson2JsonRedisSerializer);
return template;
}
}
- 把刚才引用 RredisTemplate 的地方改一下,换成我们自己改的配置类
//原来:
@Resource
RedisTemplate<Object , Object> redisTemplate;
//改成我们自己的
@Resource
RedisTemplate<Object , Object> myredisTemplate;
- 现在我们调用存入方法就使用我们自己配置的序列化方式了