问题描述
使用RedisTemplate存储的数据,在 redis-cli 客户端查看时,key 和 value 都会携带类似\xac\xad\
这样的字符串。
问题分析
是由于默认使用了 jdk 的序列化方式。以下是是 支持的序列化方式
解决方法
key 使用 String 序列化,value 使用 json 序列化。
@Configuration
public class RedisConfig {
@Autowired
RedisTemplate redisTemplate;
/**
* 解决序列化 key、value 显示问题
*
* @param redisTemplate
*/
@Autowired(required = false)
public void setRedisTemplate(RedisTemplate redisTemplate) {
RedisSerializer stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
this.redisTemplate = redisTemplate;
}
}