搜尋

首頁  >  問答  >  主體

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去掉前後空格,都沒有作用,字串沒有變換

PHP中文网PHP中文网2764 天前1095

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-05-31 10:33:22

    trim去掉空格可以用,測試的時候不是最新程式碼,"s"不能匹配,不知道怎麼回事,另外Java Date物件儲存到redis中,自動轉換為時間戳,轉換的時間戳比真實時間少了一個小時,原因都沒找到,真坑啊

    用的就是StringRedistemplate

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-31 10:33:22

    用StringRedisTemplate取代RedisTemplate試試

    回覆
    0
  • 取消回覆