Artikel ini memperkenalkan metode dan langkah -langkah penggunaan cache Redis dalam proyek Springboot. Saya akan membaginya dengan Anda. Dengan rincian sebagai berikut:
Spring Data Redis merangkum berbagai operasi klien Redis untuk kita sederhanakan penggunaan.
- Saat redis digunakan sebagai database atau antrian pesan, kami biasanya menggunakan redistemplate untuk beroperasi
- Saat Redis digunakan sebagai cache, kita dapat menggunakannya sebagai implementasi cache pegas, langsung menggunakannya melalui anotasi
1. Ikhtisar
Secara efektif menggunakan cache redis dalam aplikasi dapat meningkatkan kinerja sistem dengan baik, terutama untuk operasi kueri, yang secara efektif dapat mengurangi tekanan basis data.
Untuk kode tertentu, lihat contoh proyek ini
2. Tambahkan referensi
Bergabunglah dalam build.gradle
compile ('org.springframework.boot: Spring-boot-starter-data-redis')Springboot akan secara otomatis memperkenalkan paket toples terkait Redis. Setelah menambahkan referensi ini, Anda perlu menginstal Redis secara lokal dan memulainya, jika tidak kesalahan akan dilaporkan ketika program dimulai.
3. Aktifkan cache melalui anotasi
Sangat mudah untuk memungkinkan Redis di Springboot. Anda hanya perlu menambahkan anotasi @EnableCaching pada kelas utama aplikasi, dan kemudian menambahkan anotasi @cacheable pada metode kueri yang perlu mengaktifkan cache.
@SpringbootApplication@enablecachingpublic kelas demoApplication mengimplementasikan commandlinerner {...Antarmuka kueri:
TestRepository antarmuka publik memperluas jParepository <test, integer> {@cacheable (value = "testcache") tes publik findOne (integer id);}Kelas entitas perlu mengimplementasikan antarmuka yang dapat diserialisasi, jika tidak program akan melaporkan kesalahan karena objek Java tidak dapat diserialisasi ke Redis. Redis di Springboot menggunakan DefaultSerializer secara default, yang menggunakan metode serialisasi JDK sendiri.
Ada total metode serialisasi berikut. Untuk skenario penggunaan tertentu, silakan merujuk ke dokumentasi resmi.
1. Genericjackson2jsonRedisSerializer
2. Generictostringserializer
3. Jackson2jsonRedisserializer
4. JacksonjsonRedisSerializer
5. JDKSerializationRedisSerializer
6. Oxmserializer
7. StringRedisserializer
Pada titik ini, program kami memiliki kemampuan untuk meminta data dari cache Redis. Jika Anda tidak keberatan dengan estetika kunci yang disimpan di Redis, pekerjaan akan berakhir.
4. Kunci yang indah
Setelah menjalankan program kami, jalankan perintah Kunci * di Redis-Cli dan Anda akan menemukan bahwa nilai kunci adalah banyak hal yang mirip dengan kode yang kacau:
"TestCache: /xac/xed/x00/x05sr/x00/x11java.lang.integer/x12/xe2/xa0/xa4/xf7/x81/x878/x02/x00/x01i/x0 0/X05ValuEEXR/X00/X10JAVA.lang.Number/X86/XAC/X95/X1D/X0B/X94/XE0/X8B/X02/X00/X00XP/X00/X00/X00/X01 "
Nilai kunci dalam hal ini mungkin tidak dapat diterima oleh petugas operasi dan pemeliharaan Redis. Kita perlu menemukan cara untuk membuat nilai kunci terlihat lebih baik, setidaknya untuk membuat orang memahaminya.
Alasan untuk nilai kunci di atas adalah bahwa kelas SimpleKey digunakan secara default pada musim semi untuk menghasilkan kunci redis.
Solusinya juga sangat sederhana. Tambahkan konfigurasi cache dan tentukan bagaimana redis menghasilkan kunci:
@ConfigurationPublic kelas Cacheconfig memperluas CachingConfigurersupport {@Autowired Private Redistemplate Redistemplate; @Bean CacheManager CacheManager () {redistemplate.setkeyserializer (GenericToCtoStringSerializer baru <Peject> (Object.class)); Rediscachemanager CacheManager = RediscacheManager baru (redistemplate); cachemanager.setDefaultExpiration (3600); cachemanager.setuseprefix (true); cacheManager.setCachePrefix(new RedisCachePrefix() { private final RedisSerializer<String> serializer = new StringRedisSerializer(); private final String delimiter = ":"; public byte[] prefix(String cacheName) { return this.serializer .serialize(cacheName.concat(this.delimiter)); } }); Return Cachemanager; }}di dalam
Salinan kode adalah sebagai berikut:
redistemplate.setkeyserializer (GenericToCtringserializer baru <Peject> (Object.class));
Baris kode ini menentukan metode pembuatan nilai -nilai kunci di Redis. Metode serialisasi Generictostringserializer akan mengubah objek Java menjadi string dan menyimpannya di Redis.
5. Ringkasan
Mengaktifkan cache Redis di Springboot sangat sederhana, Anda hanya perlu menambahkan beberapa anotasi. Pada saat yang sama, kita dapat menambahkan konfigurasi cache untuk membuat nilai -nilai kunci yang disimpan di Redis memiliki keterbacaan yang baik, daripada sekelompok data yang kacau.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.