spring-data-redis - 关于spring data redis 存储 对象json字符串,value值出现一些意外的字符

查看:220
本文介绍了spring-data-redis - 关于spring data redis 存储 对象json字符串,value值出现一些意外的字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我在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

这篇关于spring-data-redis - 关于spring data redis 存储 对象json字符串,value值出现一些意外的字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆