SpringBoot使用redis缓存读取mysql数据到redis进行存储出现乱码

1--利用SpringBoot读取mysql数据进行在页面显示正确:

SpringBoot使用redis缓存读取mysql数据到redis进行存储出现乱码_第1张图片

2-将读取的mysql数据存入reids缓存:存入的是3号数据库;

   SpringBoot使用redis缓存读取mysql数据到redis进行存储出现乱码_第2张图片

 

进行redis时缓存时,发现存储在redis中的key不是设置的string值,前面还多出了许多类似\xac\xed\x00\x05t\x00这种字符串,如下

pring-data-redis的RedisTemplate模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化,如下

private boolean enableDefaultSerializer = true;
private RedisSerializer defaultSerializer = new JdkSerializationRedisSerializer();
private RedisSerializer keySerializer = null;
private RedisSerializer valueSerializer = null;
private RedisSerializer hashKeySerializer = null;
private RedisSerializer hashValueSerializer = null;

 

解决办法:进行序列化:

private RedisTemplate redisTemplate;

@Autowired(required = false)
public void setRedisTemplate(RedisTemplate redisTemplate) {
    RedisSerializer stringSerializer = new StringRedisSerializer();
    redisTemplate.setKeySerializer(stringSerializer);
    redisTemplate.setValueSerializer(stringSerializer);
    redisTemplate.setHashKeySerializer(stringSerializer);
    redisTemplate.setHashValueSerializer(stringSerializer);
    this.redisTemplate = redisTemplate;
}

 

显示结果:完成!

SpringBoot使用redis缓存读取mysql数据到redis进行存储出现乱码_第3张图片

 

 

 

 

你可能感兴趣的:(redis,SpringBoot,redis缓存出现乱码,缓存)