Kaedah penyepaduan redis cache Springboot
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:
Konfigurasi permulaan lalai ialah: SimpleCacheConfiguration.
Bilakah cache lain didayakan?
Kita boleh mencari kelas konfigurasi ini dengan ctrl+n, kemudian masuk dan melihat keadaan bersyaratnya:
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
Ini disambungkan ke gudang asing, dan kelajuannya agak perlahan.
Kami mengesyorkan menggunakan buruh pelabuhan China.
docker pull registry.docker-cn.com/library/redis
Mulakan imej redis
docker run -d -p 6379:6379 --name myredis [REPOSITORY] docker ps
Untuk ujian, buka alat sambungan redis.
pengurus desktop redis
Uji operasi data biasa redis
redis Operasi senarai
operasi set redis
Memperkenalkan pemula redis
Mengkonfigurasi redis
Bercakap secara ringkas tentang prinsip redis
Kami Selepas pemula redis diperkenalkan, redisAutoConfiguration mula dimainkan.
RedisAutoConfiguration ini menambah dua komponen pada bekas:
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.
ujian redis
senarai operasi redis:
redis test save object
Semua perkara yang tidak dapat difahami ini Semuanya adalah hasil siri.
peraturan siri lalai redisTemplate
Pensiri lalai , iaitu JdkSerializationRedisSerializer digunakan.
Penyeri lalai ialah penyeri JDK yang digunakan.
Mari beralih kepada penyeri json dan itu sahaja.
konfigurasi redis
Dalam kelas ujian, redisTemplate yang dikonfigurasikan kami sendiri disuntik secara automatik.
Kemudian kami menguji menyimpan objek itu semula.
Ini menunjukkan bahawa pengubahsuaian serializer kami berjaya.
Ini menjelaskan bahawa jika kita ingin menyimpan objek kemudian, kita sering perlu mengubah suai serializer.
Uji cache
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?
Ternyata lalai yang didayakan ialah: SimpleCacheConfiguration.
Sekarang kami telah memperkenalkan pemula berkaitan redis, program ini akan mendayakan RedisCacheConfiguration secara lalai.
Hanya mulakan program dan uji terus.
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:
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.
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
Pada masa ini, kami memulakan semula projek untuk menguji Pada masa ini, kami dapat melihat hasilnya dalam redis, iaitu Kami mahukannya.
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.
Masalah yang tinggal sedikit
Pangkalan Data
Kami meletakkan sekeping data dalam jadual jabatan dalam pangkalan data:
pemeta
Kami menulis pemeta yang sepadan dengan operasi jabatan.
perkhidmatan
Mari kita tulis perkhidmatan yang sepadan
pengawal
Mulakan ujian projek
Kemudian mari kita lihat sama ada terdapat data dalam redis?
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
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.
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
Pada masa ini, terdapat dua redisCacheManagers yang manakah harus kami gunakan?
Kami boleh menentukannya dalam perkhidmatan.
Kemudian kami memulakan semula projek, dan hasilnya ialah ralat:
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:
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?
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.
Kemudian semasa proses pengekodan, kita boleh mendapatkan cache dengan mengendalikan cacheManager ini,
Kemudian, kendalikan komponen cache untuk meningkatkan data Padam, ubah suai dan semak.
Kami menguji kod di atas dan memulakan projek, dan mendapati ia ok, dan data berjaya dimasukkan ke dalam redis:
Atas ialah kandungan terperinci Kaedah penyepaduan redis cache Springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Menggunakan Arahan Redis memerlukan langkah -langkah berikut: Buka klien Redis. Masukkan arahan (nilai kunci kata kerja). Menyediakan parameter yang diperlukan (berbeza dari arahan ke arahan). Tekan Enter untuk melaksanakan arahan. Redis mengembalikan tindak balas yang menunjukkan hasil operasi (biasanya OK atau -r).

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Redis menggunakan satu seni bina berulir untuk memberikan prestasi tinggi, kesederhanaan, dan konsistensi. Ia menggunakan I/O multiplexing, gelung acara, I/O yang tidak menyekat, dan memori bersama untuk meningkatkan keserasian, tetapi dengan batasan batasan konkurensi, satu titik kegagalan, dan tidak sesuai untuk beban kerja yang berintensifkan.

Cara terbaik untuk memahami kod sumber REDIS adalah dengan langkah demi langkah: Dapatkan akrab dengan asas -asas Redis. Pilih modul atau fungsi tertentu sebagai titik permulaan. Mulakan dengan titik masuk modul atau fungsi dan lihat baris kod mengikut baris. Lihat kod melalui rantaian panggilan fungsi. Berhati -hati dengan struktur data asas yang digunakan oleh REDIS. Kenal pasti algoritma yang digunakan oleh Redis.

Redis menggunakan jadual hash untuk menyimpan data dan menyokong struktur data seperti rentetan, senarai, jadual hash, koleksi dan koleksi yang diperintahkan. Redis berterusan data melalui snapshots (RDB) dan menambah mekanisme tulis sahaja (AOF). Redis menggunakan replikasi master-hamba untuk meningkatkan ketersediaan data. Redis menggunakan gelung acara tunggal untuk mengendalikan sambungan dan arahan untuk memastikan atom dan konsistensi data. Redis menetapkan masa tamat tempoh untuk kunci dan menggunakan mekanisme memadam malas untuk memadamkan kunci tamat tempoh.

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Untuk melihat semua kunci di Redis, terdapat tiga cara: Gunakan perintah kunci untuk mengembalikan semua kunci yang sepadan dengan corak yang ditentukan; Gunakan perintah imbasan untuk melangkah ke atas kunci dan kembalikan satu set kunci; Gunakan arahan maklumat untuk mendapatkan jumlah kunci.
