Rumah  >  Artikel  >  pangkalan data  >  Kaedah penyepaduan redis cache Springboot

Kaedah penyepaduan redis cache Springboot

WBOY
WBOYke hadapan
2023-05-30 13:22:12730semak imbas

    Lalai ialah ConcurrentMapCache daripada ConcurrentMapCacheManager sebagai komponen cache.

    Apabila menggunakan ConcurrentMap, data disimpan dalam ConcurrentMap<object></object>.

    Malah, semasa proses pembangunan, kami sering menggunakan beberapa perisian tengah caching.

    Sebagai contoh, kami sering menggunakan redis, memcache, termasuk ehcache yang kami gunakan, dll. Kami semua menggunakan beberapa perisian tengah caching.

    Apabila kami menerangkan prinsip sebelum ini, kami juga mendapati bahawa springboot menyokong banyak konfigurasi cache:

    Seperti yang ditunjukkan dalam rajah di bawah:

    Kaedah penyepaduan redis cache Springboot

    Konfigurasi permulaan lalai ialah: SimpleCacheConfiguration.

    Bilakah cache lain didayakan?

    Kita boleh mencari kelas konfigurasi ini dengan ctrl+n, kemudian masuk dan melihat keadaan bersyaratnya:

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Ini semua bermakna bahawa konfigurasi ini hanya akan berkuat kuasa apabila anda mengimport pakej yang sepadan.

    Integrate redis as cache

    Sekiranya ada pelajar yang tidak tahu teknologi redis, ada video penerangan siri redis yang dikeluarkan oleh cikgu Zhou Yang di Shang Silicon Valley. Atau anda boleh melawati laman web rasmi redis secepat mungkin untuk belajar redis.cn ialah laman web bahasa Cina untuk pembelajaran redis.

    Pasang redis

    Cari imej redis

    Kaedah penyepaduan redis cache Springboot

    Ini disambungkan ke gudang asing, dan kelajuannya agak perlahan.

    Kami mengesyorkan menggunakan buruh pelabuhan China.

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    docker pull registry.docker-cn.com/library/redis

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Mulakan imej redis

    docker run -d -p 6379:6379 --name myredis [REPOSITORY]
    docker ps

    Untuk ujian, buka alat sambungan redis.

    pengurus desktop redis

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Uji operasi data biasa redis

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    redis Operasi senarai

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    operasi set redis

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Memperkenalkan pemula redis

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Mengkonfigurasi redis

    Kaedah penyepaduan redis cache Springboot

    Bercakap secara ringkas tentang prinsip redis

    Kami Selepas pemula redis diperkenalkan, redisAutoConfiguration mula dimainkan.

    Kaedah penyepaduan redis cache Springboot

    RedisAutoConfiguration ini menambah dua komponen pada bekas:

    Kaedah penyepaduan redis cache Springboot

    Komponen yang ditambahkan pada bekas, satu One dipanggil RedisTemplate, dan yang lain dipanggil StringRedisTemplate, dua perkara.

    Dua perkara ini digunakan untuk mengendalikan redis.

    Ini adalah sama seperti jdbcTemplate yang digunakan oleh semua orang sebelum ini, digunakan untuk mengendalikan pangkalan data.

    Ini adalah dua templat yang digunakan oleh spring untuk memudahkan operasi redis Jika anda ingin menggunakan kedua-dua perkara ini dalam program, hanya masukkannya secara automatik.

    Kaedah penyepaduan redis cache Springboot

    ujian redis

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    senarai operasi redis:

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    redis test save object

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Semua perkara yang tidak dapat difahami ini Semuanya adalah hasil siri.

    peraturan siri lalai redisTemplate

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Pensiri lalai , iaitu JdkSerializationRedisSerializer digunakan.

    Penyeri lalai ialah penyeri JDK yang digunakan.

    Mari beralih kepada penyeri json dan itu sahaja.

    konfigurasi redis

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Dalam kelas ujian, redisTemplate yang dikonfigurasikan kami sendiri disuntik secara automatik.

    Kaedah penyepaduan redis cache Springboot

    Kemudian kami menguji menyimpan objek itu semula.

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Ini menunjukkan bahawa pengubahsuaian serializer kami berjaya.

    Ini menjelaskan bahawa jika kita ingin menyimpan objek kemudian, kita sering perlu mengubah suai serializer.

    Kaedah penyepaduan redis cache Springboot

    Uji cache

    Kaedah penyepaduan redis cache Springboot

    Kami menggunakan pengurus cache ConCurrentMap sebelum ini.
    Pengurus cache ini membantu kami membuat komponen cache.
    Komponen cache sebenarnya menjalankan kerja CRUD dalam cache.

    Sekarang kami telah memperkenalkan redis, apa yang akan berlaku?
    Kami masih menetapkan debug=true dalam application.properties supaya laporan konfigurasi automatik boleh dihidupkan.
    Pada masa ini, kami memulakan semula program kami dan mencari dalam konsol.
    Lihat kelas konfigurasi automatik manakah yang berkuat kuasa?

    Kaedah penyepaduan redis cache Springboot

    Ternyata lalai yang didayakan ialah: SimpleCacheConfiguration.

    Sekarang kami telah memperkenalkan pemula berkaitan redis, program ini akan mendayakan RedisCacheConfiguration secara lalai.

    Kaedah penyepaduan redis cache Springboot

    Hanya mulakan program dan uji terus.

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Menunjukkan bahawa apabila membuat pertanyaan buat kali pertama, ia sedang menanyakan pangkalan data.

    Apabila membuat pertanyaan untuk kali kedua, tiada output pada konsol, menunjukkan bahawa cache telah ditanya.

    Cache hanya didayakan secara redis secara lalai.

    Maka mesti dalam redis.

    Kita boleh menyemaknya:

    Kaedah penyepaduan redis cache Springboot

    Ini menggambarkan masalah Apabila k dan v adalah kedua-dua objek, siri digunakan untuk menyimpan objek secara lalai. Untuk menyimpan. Kami mahu redis menyimpannya secara automatik sebagai json.

    Apa yang perlu kita lakukan?

    Mari kita analisis dahulu prinsip proses ini.

    1. Kami telah memperkenalkan pemula redis, jadi pengurus cache kami telah menjadi pengurus semula pendiscache

    2.

    Kaedah penyepaduan redis cache Springboot

    3. Reka bentuk semula ini dicipta untuk kami melalui konfigurasi semula. Mekanisme penyirian lalai yang digunakan oleh penyusunan semula ini ialah jdkserializationredisserializer. Ini bersamaan dengan fakta bahawa redisCacheManager yang redis menghalang kami secara lalai tidak cukup memenuhi keperluan kami.

    Apa yang perlu kita lakukan?

    Kita harus menyesuaikan CacheManager.

    RedisCacheManager tersuai

    Kaedah penyepaduan redis cache Springboot

    Pada masa ini, kami memulakan semula projek untuk menguji Pada masa ini, kami dapat melihat hasilnya dalam redis, iaitu Kami mahukannya.

    Kaedah penyepaduan redis cache Springboot

    Semasa temuduga seterusnya, Yunqiu boleh bertanya kepada mereka yang ingin datang ke taman perisian, adakah anda tahu bahawa apabila redis starter menyimpan objek, redisTemplate Apakah peraturan bersiri lalai?

    Jika kita ingin mengubah suai peraturan pensirilan lalai apabila menggunakan redis, apakah yang perlu kita lakukan?

    Kami boleh memperibadikan redisCacheManager, kemudian menyesuaikan redisTemplate, dan menghantar penyeri berkaitan json dalam redisTemplate.

    Kaedah penyepaduan redis cache Springboot

    Masalah yang tinggal sedikit

    Pangkalan Data

    Kami meletakkan sekeping data dalam jadual jabatan dalam pangkalan data:

    Kaedah penyepaduan redis cache Springboot

    pemeta

    Kami menulis pemeta yang sepadan dengan operasi jabatan.

    Kaedah penyepaduan redis cache Springboot

    perkhidmatan

    Mari kita tulis perkhidmatan yang sepadan

    Kaedah penyepaduan redis cache Springboot

    pengawal

    Kaedah penyepaduan redis cache Springboot

    Mulakan ujian projek

    Kaedah penyepaduan redis cache Springboot

    Kemudian mari kita lihat sama ada terdapat data dalam redis?

    Kaedah penyepaduan redis cache Springboot

    Kami telah melihat bahawa terdapat data berkaitan jabatan dalam redis.

    Apabila kami membuat pertanyaan dept untuk kali kedua, kami harus menggunakan redis cache.

    Tetapi apabila kami menyemak untuk kali kedua, ralat berikut berlaku.

    Ralat

    Kaedah penyepaduan redis cache Springboot

    Ralat yang dilaporkan di atas bermakna json tidak boleh dibaca.

    Oleh kerana ia adalah perlu untuk menukar objek json jabatan kepada objek json pekerja, yang tidak mungkin.

    Ini kerana redisCacheManager yang kami letakkan adalah untuk kakitangan operasi.

    Kaedah penyepaduan redis cache Springboot

    Jadi, kesan yang kita nampak sekarang sangat ajaib.

    Data cache boleh disimpan dalam redis.

    Tetapi apabila kami membuat pertanyaan daripada cache untuk kali kedua, kami tidak boleh membatalkannya semula.

    Ternyata apa yang kami simpan ialah data json dept, dan pengurus cache kami menggunakan templat pekerja untuk mengendalikan redis secara lalai.

    Perkara ini hanya boleh menyahsiri data pekerja.

    Menyelesaikan ralat

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Pada masa ini, terdapat dua redisCacheManagers yang manakah harus kami gunakan?

    Kami boleh menentukannya dalam perkhidmatan.

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Kemudian kami memulakan semula projek, dan hasilnya ialah ralat:

    Kaedah penyepaduan redis cache Springboot

    Jika , jika kami mempunyai berbilang Pengurus cache, kami mesti menggunakan Pengurus cache tertentu sebagai pengurus cache yang dikonfigurasikan lalai kami.

    Sebagai contoh, kami boleh melakukan operasi berikut untuk membetulkan ralat permulaan:

    Kaedah penyepaduan redis cache Springboot

    Mulakan semula untuk ujian projek

    Pada masa ini, mari kita lihat sama ada kita boleh menyahsiri dan membaca maklumat jabatan kita daripada redis secara normal dan berjaya apabila kita melaksanakan pertanyaan jabatan kedua?

    Kaedah penyepaduan redis cache Springboot

    Kaedah penyepaduan redis cache Springboot

    Pada masa ini, kami mendapati bahawa sama ada pekerja atau jabatan, kami boleh berjaya menyahsiri dan menanyakannya daripada redis .

    Ini sempurna.

    Pengekodan untuk mengendalikan cache

    Apa yang kami katakan sebelum ini semuanya menggunakan anotasi untuk meletakkan data dalam cache.

    Namun, semasa pembangunan, kita sering menghadapi situasi sedemikian.

    Iaitu, pada peringkat tertentu pembangunan kami, kami perlu meletakkan beberapa data ke dalam cache.

    Kita perlu menggunakan pengekodan untuk mengendalikan cache.

    Sebagai contoh, selepas kami menanyakan maklumat jabatan, kami ingin memasukkan maklumat ini ke dalam redis.

    Kami boleh menyuntik Pengurus cache jabatan.

    Kaedah penyepaduan redis cache Springboot

    Kemudian semasa proses pengekodan, kita boleh mendapatkan cache dengan mengendalikan cacheManager ini,

    Kemudian, kendalikan komponen cache untuk meningkatkan data Padam, ubah suai dan semak.

    Kaedah penyepaduan redis cache Springboot

    Kami menguji kod di atas dan memulakan projek, dan mendapati ia ok, dan data berjaya dimasukkan ke dalam redis:

    Kaedah penyepaduan redis cache Springboot

    Atas ialah kandungan terperinci Kaedah penyepaduan redis cache Springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam