Rumah > pangkalan data > Redis > Bagaimana untuk menyelesaikan kod bersiri Redis di bawah SpringBoot

Bagaimana untuk menyelesaikan kod bersiri Redis di bawah SpringBoot

王林
Lepaskan: 2023-05-27 11:34:06
ke hadapan
1929 orang telah melayarinya

Kod bersiri Redis berantakan di bawah SpringBoot

Penyelesaian bersiri asal projek menggunakan kelas bersiri JDK, tetapi menyimpannya ke redis akan menghasilkan kod berantakan dan menyusahkan untuk dilihat dan diurus.

public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) {
        redisTemplate.setKeySerializer(new JdkSerializationRedisSerializer(Object.class.getClassLoader()));
        redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer(Object.class.getClassLoader()));
        redisTemplate.setHashKeySerializer(new JdkSerializationRedisSerializer(Object.class.getClassLoader()));
        redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer(Object.class.getClassLoader()));
        this.redisTemplate = redisTemplate;
    }
Salin selepas log masuk

Selepas menyemak di Internet, ia disebabkan oleh masalah kelas bersiri Kami tidak menggunakan kaedah bersiri jdk dan menggunakan format json

public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) {
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
        this.redisTemplate = redisTemplate;
    }
Salin selepas log masuk

Beri perhatian kepada masalah itu

Gunakan penyeri bersiri di atas Adalah perlu untuk memastikan semua kaedah get dalam kelas entiti mempunyai medan atribut, jika tidak, masalah akan berlaku apabila menyahsiri perbualan Jika tidak perlu menambah anotasi @JsonIgnore, ia akan diabaikan semasa bersiri .

SpringBoot mengkonfigurasi peraturan siri Redis untuk mengelakkan aksara yang bercelaru

SpringBoot memperkenalkan Redis dengan sangat mudah, tambahkan anotasi berikut:

Bagaimana untuk menyelesaikan kod bersiri Redis di bawah SpringBoot

Kemudian dalam aplikasi . Tambah konfigurasi Redis dalam yml:

Bagaimana untuk menyelesaikan kod bersiri Redis di bawah SpringBoot

Nota: Terdapat beberapa konfigurasi tambahan di sini, seperti kata laluan, dsb., yang saya tidak akan tulis di sini untuk menyelamatkan masalah.

Kini kami boleh menulis kelas ujian

Bagaimana untuk menyelesaikan kod bersiri Redis di bawah SpringBoot

Selepas ujian, kami menemui masalah, kunci seperti ujian:1 telah bercelaru. Sebagai contoh, apabila saya menggunakan alat

Another.Redis.Desktop.Manager untuk melihatnya, saya mendapati ia bertukar menjadi satu siri rentetan pelik.

Kod bercelaru.

Ini disebabkan oleh peraturan siri lalai Redis. Semua peraturan siri lalai RedisTemplate ialah JDKSerializer, dan peraturan siri lalai StringRedisTemplate ialah StringRedisSerializer.

Anda boleh lihat gambar di bawah untuk butiran

Bagaimana untuk menyelesaikan kod bersiri Redis di bawah SpringBoot

Bagaimana untuk menyelesaikan kod bersiri Redis di bawah SpringBoot

Kami perlu mengkonfigurasinya

rreee

Nota: Hanya peraturan siri Kunci dan Nilai ditetapkan semula di sini Peraturan siri kunci cincang dan nilai cincang boleh ditetapkan melalui rujukan.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan kod bersiri Redis di bawah SpringBoot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Isu terkini
masalah sambungan php redis
daripada 1970-01-01 08:00:00
0
0
0
Mengenai ralat kecil dalam manual redis
daripada 1970-01-01 08:00:00
0
0
0
Adakah mungkin untuk menyepadukan fungsi REDIS?
daripada 1970-01-01 08:00:00
0
0
0
python2.7 - django tidak boleh menyambung ke redis
daripada 1970-01-01 08:00:00
0
0
0
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan