【redis】RedisTemplate操作redis時,key值出現\xer\xnh\x00\x06t\x00前綴

最近貓哥開始在寫java項目時接觸使用redis,碰到的問題打算記錄一下。其中一個就是在使用RedisTemplate操作redis時,key值會出現類似\xer\xnh\x00\x06t\x00前綴。

查閱相關資料發現了原因:RedisTemplate默認序列化方式用的是JdkSerializationRedisSerializer,此時將key序列化方式改成StringRedisSerializer,將value序列化方式改爲Jackson2JsonRedisSerializer即可。

解決方法如下:

@Autowired
private RedisTemplate redisTemplate;

@Autowired(required = false)
public void setRedisTemplate(RedisTemplate redisTemplate) {
	RedisSerializer stringSerializer =  new StringRedisSerializer();//序列化爲String
	Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);//序列化爲Json
	redisTemplate.setKeySerializer(stringSerializer);
	redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
	redisTemplate.setHashKeySerializer(stringSerializer);
	redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
	this.redisTemplate = redisTemplate;
}

如上即可解決出現的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章