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