Saya menyimpan rentetan json objek untuk setiap kekunci dalam redis, tetapi terdapat beberapa aksara pelik apabila saya mengeluarkannya
this.redisTemplate.opsForValue().set(key, objectMapper.writeValueAsString(XXX), 15 * 1000);
Ini ialah kod nilai:
String xxxJSON= this.redisTemplate.opsForValue().get(key);
XXX xxx = objectMapper.readValue(xxxJSON, XXX.class);
Ini adalah output:
redis取到的值==== NULNULNULNULNULNULNULNULNUL。。。。。{json 内容}
Inilah yang anda lihat dalam pengurus redis
\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数据}
Keluaran log NUL sebelum ini boleh dilihat, tetapi apabila disalin, ia penuh dengan ruang Untuk membolehkan semua orang melihat kesannya, NUL tulisan tangan
Masalah utama ialah saya perlu menukar data yang diambil kepada objek Jika saya mengalih keluar NUL di hadapannya, ia boleh ditukar menjadi objek Jika saya menambahnya, ralat akan dilaporkan, tetapi apabila saya menyalin ia, ia akan diisi dengan ruang
Data lain baik dengan senarai set Tiada masalah dengan rentetan atau rentetan, hanya rentetan json yang mempunyai masalah ini.
Adakah sesiapa menghadapi masalah ini? Sebab utamanya ialah mereka tidak faham mengapa rentetan JSON juga rentetan. Mengapa rentetan JSON tidak mengalami masalah ini?
Juga cuba gunakan s untuk memadankan ruang dan menggantikan serta memangkas untuk mengeluarkan ruang hadapan dan belakang, tetapi ia tidak mempunyai kesan dan rentetan tidak berubah
trim boleh digunakan selepas mengalih keluar ruang Ia bukan kod terkini apabila "s" tidak dapat dipadankan. Saya tidak tahu apa yang berlaku Cap masa yang ditukar adalah kurang daripada masa sebenar Saya mengambil masa sejam dan saya masih tidak dapat mencari sebabnya
Menggunakan StringRedistemplate
Cuba gunakan StringRedisTemplate dan bukannya RedisTemplate