这里是因为,springboot默认的redis的序列化机制为
JdkSerializationRedisSerializer
if (enableDefaultSerializer) {
if (keySerializer == null) {
keySerializer = defaultSerializer;
defaultUsed = true;
}
if (valueSerializer == null) {
valueSerializer = defaultSerializer;
defaultUsed = true;
}
if (hashKeySerializer == null) {
hashKeySerializer = defaultSerializer;
defaultUsed = true;
}
if (hashValueSerializer == null) {
hashValueSerializer = defaultSerializer;
defaultUsed = true;
}
}
这是如果你不更改,就会出现乱码,我们使用
com.alibaba.fastjson 的FastJsonRedisSerializer laii
FastJsonRedisSerializer objectFastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);
template.setHashValueSerializer(objectFastJsonRedisSerializer);
template.setValueSerializer(objectFastJsonRedisSerializer);
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());