我在redis中每个key保存了一个对象的json字符串,但是取出来的多了一些奇怪的字符
this.redisTemplate.opsForValue().set(key, objectMapper.writeValueAsString(XXX), 15 * 1000);
这是取值代码:
String xxxJSON= this.redisTemplate.opsForValue().get(key);
XXX xxx = objectMapper.readValue(xxxJSON, XXX.class);
这是输出结果:
redis取到的值==== NULNULNULNULNULNULNULNULNUL。。。。。{json 内容}
这是 redis manager 里看到的
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00。。。。。。。。。。。。还有很多{json数据}
前面的NUL日志输出是能看到的,但是复制出来 却都是空格, 为了让大家看到效果,手写的NUL
主要的问题,我要把取出的数据,转化为对象,如果去掉前面的NUL,是可以转化为对象的,加上就报错,可是复制出那些又都是空格,
其它数据还好 set list 或者字符串 都没问题,唯有json字符串出现了这个问题。
有没有大神遇到过这种问题,主要是不明白为什么会出现这种问题,json字符串也是字符串啊,为什么普通的字符串不出现这种问题,json字符串出现这种问题
另外尝试用s 匹配空格替换和trim去掉前后空格,都没有作用,字符串没有变换
trim去掉空格可以用,测试的时候不是最新代码,"s"不能匹配,不知道怎么回事,另外Java Date对象存储到redis中,自动转化为时间戳,转化的时间戳比真实时间少了一个小时,原因都没找到,真坑啊
用的就是StringRedistemplate
用StringRedisTemplate代替RedisTemplate试试