Redis trouble04 -- 数据明明存储进去了,但是读取不到redis中的数据,scan发现数据前面多了xac\xed\x00\x05t\x00\特殊字符
2021/9/3 19:07:41
本文主要是介绍Redis trouble04 -- 数据明明存储进去了,但是读取不到redis中的数据,scan发现数据前面多了xac\xed\x00\x05t\x00\特殊字符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、问题描述:
数据存储到redis中,从代码中也能从redis中读取到,但是从cli客户端中不能查询到数据,通过scan后发现存入的数据前边都多了一串特殊字符
二、问题分析
存储数据的时候我们使用的是redis的默认的序列化方式(JDK序列化方式),要想读出来数据,需要使用相同的序列化方式,这就是为什么代码中可以读取到数据,因为代码中的redis使用的还是jdk的序列化方式,但是cli客户端就不一样了,我们使用cli客户端读取数据,使用没有进行序列化的key,和使用jdk序列化之后的key是不一样的,所以查询不到数据
三、解决方案
总结下来我们在使用redis的时候还是要定一个规范,redis的key可以统一的使用string的序列化方式,就不会存在上边的问题,还有就是使用jdk的序列化的方式,很明显,key变长了,这样存储也会增加内存的使用
@Configuration public class RedisConfig { @Bean public RedisTemplate redisTemplate(RedisConnectionFactory factory){ RedisTemplate template = new RedisTemplate <>(); template.setConnectionFactory(factory); //替换默认序列化的方式 //1.设置key的序列化方式为string StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); //1.1设置key的序列化方式为string template.setKeySerializer(stringRedisSerializer); //1.2设置hash key的序列化方式为string template.setHashKeySerializer(stringRedisSerializer); //2.设置value的序列化方式 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); //2.1设置value的序列化方式为string template.setValueSerializer(stringRedisSerializer); //2.2设置hash value的序列化方式为json template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } }
这篇关于Redis trouble04 -- 数据明明存储进去了,但是读取不到redis中的数据,scan发现数据前面多了xac\xed\x00\x05t\x00\特殊字符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识