问题场景:
如果我们使用redis默认的序列化器,会发现redis可视化工具中展示的是乱码,非常不友好
解决:
配置redisTemplate的序列化器,使用自定义的序列化器,不使用redis默认的,代码如下:
package com.hkl.modules.configure;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* <p>ClassName: RedisConfigure</p >
* <p>Description: redisTemplate自定义序列化配置,更改其默认序列化器</p >
* <p>Date: 2021/10/23</p >
*/
@Configuration
public class RedisConfigure {
@Bean(name = "redisTemplate")
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
// 参照StringRedisTemplate内部实现指定序列化器
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(keySerializer());
redisTemplate.setHashKeySerializer(keySerializer());
redisTemplate.setValueSerializer(valueSerializer());
redisTemplate.setHashValueSerializer(valueSerializer());
return redisTemplate;
}
//使用Jackson序列化器,key使用字符串
private RedisSerializer<String> keySerializer() {
return new StringRedisSerializer();
}
//使用Jackson序列化器,value使用Object
private RedisSerializer<Object> valueSerializer() {
return new GenericJackson2JsonRedisSerializer();
}
}
以上配置好之后,redis可视化端就会正常显示json格式的数据
image.png
网友评论