項目工程配置使用fastjson實現(xiàn)redis數(shù)據(jù)讀寫后的序列化及反序列化,開發(fā)過程提示fastjson序列化redis數(shù)據(jù)異常,提示不符合json格式,使用redis-cli檢索redis數(shù)據(jù)發(fā)現(xiàn)json字符串前面多了很多‘/x00’,如下圖:
從截圖可以看出確實不符合json格式,經(jīng)檢查其他數(shù)據(jù)并沒有這種情況,初步定位是寫數(shù)據(jù)問題,
發(fā)現(xiàn)寫數(shù)據(jù)用了如下API:
this.redisTemplate.opsForValue().set(key, value, ttl);
其他正常寫數(shù)據(jù)的使用的是如下API:
this.redisTemplate.opsForValue().set(key, value, ttl, TimeUnit.SECONDS);
可以發(fā)現(xiàn)導致數(shù)據(jù)不符合json格式的原因是在api里面沒有指定有效期單位。加上單位后復測發(fā)現(xiàn)數(shù)據(jù)能夠正常解析,為什么不指定時間單位會出現(xiàn)這個問題呢?暫時留個疑問。。。
