怎么解决springdataredis储存键值发现key为\xAC\xED\x00\x05t\x00\x04的问题

这篇文章主要讲解了“怎么解决springdataredis储存键值发现key为\xAC\xED\x00\x05t\x00\x04的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决springdataredis储存键值发现key为\xAC\xED\x00\x05t\x00\x04的问题”吧!

redisTemplate 默认的序列化方式为 jdkSerializeable, StringRedisTemplate的默认序列化方式为StringRedisSerializer,修改默认的序列化方式

<bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
    <property name="connectionFactory" ref="JedisConnectionFactory" /><property name="defaultSerializer" ref="stringRedisSerializer"></property></bean>
/**
 * redisTemplate 序列化使用的jdkSerializeable, 存储二进制字节码, 所以自定义序列化类
 * @param redisConnectionFactory
 * @return
 */
@Bean
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
	RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
	redisTemplate.setConnectionFactory(redisConnectionFactory);

	// 使用Jackson2JsonRedisSerialize 替换默认序列化
	Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

	ObjectMapper objectMapper = new ObjectMapper();
	objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
	objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

	jackson2JsonRedisSerializer.setObjectMapper(objectMapper);

	// 设置value的序列化规则和 key的序列化规则
	redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
	redisTemplate.setKeySerializer(new StringRedisSerializer());
	redisTemplate.afterPropertiesSet();
	return redisTemplate;
}

感谢各位的阅读,以上就是“怎么解决springdataredis储存键值发现key为\xAC\xED\x00\x05t\x00\x04的问题”的内容了,经过本文的学习后,相信大家对怎么解决springdataredis储存键值发现key为\xAC\xED\x00\x05t\x00\x04的问题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!