springboot RedisTemplate key前面乱码问题
1. 问题描述:使用springboot微服务架构,同事使用了如下进行存储数据:redisTemplate.opsForValue().set(k, v, 2, TimeUnit.MINUTES);我这边统一对所存储的数据进行处理,当通过 redisTemplate.opsForValue().get(k) 获取不到数据时,使用我自己的另外方式发送数据,并存储:redisTempla...
·
1. 问题描述:使用springboot微服务架构,同事使用了如下进行存储数据:
redisTemplate.opsForValue().set(k, v, 2, TimeUnit.MINUTES);
我这边统一对所存储的数据进行处理,当通过 redisTemplate.opsForValue().get(k) 获取不到数据时,使用我自己的另外方式发送数据,并存储:redisTemplate.opsForValue().set(k, v1, 2, TimeUnit.MINUTES);
但我这边存储后,一直未找到存储的k, 后来仔细查找,发现我的k前面出现乱码:\xAC\xED\x00\x05t\x00\x10
2. 问题分析:
经过比对,同事存储的k是正常,前面没有出现乱码,而我的都会出现乱码。网上有说是:
redisTemplate 默认的序列化方式为 jdkSerializeable, StringRedisTemplate的默认序列化方式为StringRedisSerializer,需要设定自己的序列化方式。 而且处理方式颇为复杂。
3. 处理方法:
经过对比发现一个小细节:同事使用redisTemplate时,对key,和value有规定:即
@Autowired private RedisTemplate<String,String> redisTemplate;
而我引用时,没有规定key, value的类型:
@Autowired private RedisTemplate redisTemplate;
既然问题已经找到,只需将引用方式改为同事的引用方式即可。
更多推荐
已为社区贡献2条内容
所有评论(0)