(1) pom.xml memperkenalkan paket jar, sebagai berikut:
<mendensi> <GroupId> org.springframework.boot </groupid> <ArTifactId> Spring-boot-starter-data-redis </t Artifactid> </dependency>
(2) Ubah kelas startup proyek, tambahkan anotasi @enablecaching, dan aktifkan fungsi caching, sebagai berikut:
Paket springboot; impor org.springframework.boot.springapplication; impor org.springframework.boot.autoconfigure.springbootApplication; impor org.springframework.cache.annotation.enablecaching; impor org.springframework. }}
(3) Mengkonfigurasi informasi koneksi REDIS di application.properties, sebagai berikut:
# Redis database index (default is 0) spring.redis.database=0# Redis server address spring.redis.host=172.31.19.222# Redis server connection port spring.redis.port=6379# Redis server connection password (default is empty) spring.redis.password=# Maximum number of connections to the connection pool (using negative values means no limit) spring.redis.pool.max-active = 8# Maksimum Memblokir waktu tunggu untuk kumpulan koneksi (menggunakan nilai-nilai negatif berarti tidak ada batas) spring.redis.pool.max-wait = -1# koneksi idle maksimum dalam koneksi pool spring.redis.pool.max- idle = 8# koneksi waktu idle minimum dalam koneksi pool spring.redis.pool.min-idle = 8
(4) Buat kelas konfigurasi cache redis baru Redisconfig, sebagai berikut:
Paket springboot.config; impor org.springframework.beans.factory.annotation.value; impor org.springframework.cache.cacheManager; impor org.springframework.cache.annotation.cachingconfigurersupport; impor org.springfran.cache.cachenotation. org.springframework.context.annotation.bean; impor org.springframework.context.annotation.configuration; impor org.springframework.data.redis.cache.connectioner; impor org.springframework.data.redis.connectioner; org.springframework.data.redis.core.redistemplate; impor org.springframework.data.redis.core.stringredistemplate; impor org.springframework.data.redis.serializer.jackson2jsonredisserizer; com.fasterxml.jackson.annotation.propertyaccessor; impor com.fasterxml.jackson.databind.objectmapper;/** * redis cache kelas konfigurasi * @author szekinwin * */@configuration@enableCachingPublic redisconfigFig CacingFig CacingFig CacingFigFIGIGGIGIGGIGIGGIGIGGIGIGGIG@enablecachingpublic @Value ("$ {spring.redis.host}") Private String Host; @Value ("$ {spring.redis.port}") private int port; @Value ("$ {spring.redis.timeout}") private int timeout; // Strategi Pembuatan Kunci Kustom Kustom // @Bean // Public KeyGenerator KeyGenerator () {// mengembalikan keygenerator baru () {// @override // Objek Publik menghasilkan (target objek, java.lang.reflect.method Metode, objek ... Params) {// StringBuffer SB = New StringBuffer ();; SB.Append (target.getClass (). getName ()); // sb.append (method.getName ()); // for (objek obj: params) {// sb.append (obj.toString ()); //} // return sb.toString (); //} //}}} // Cache Manager @Bean CacheManager Cachemanager (@SuppressWarnings ("RawTypes") Redistemplate Redistemplate) {REDISCACHEMANAGER CACHEMANAGER = REDISCACHEMANAGER BARU (Redistemplate); // atur cache waktu kedaluwarsa cacheemanager.setDefaultExpiration (10000); Return Cachemanager; } @Bean redistemplate publik <String, String> redistemplate (RedisconnectionFactory factory) {stringDistemplate template = new StrreDistemplate (factory); setSerializer (template); // atur template alat serialisasi. Template Kembalikan; } private void setSerializer (Templat StringRedistemplate) {@suppressWarnings ({"RawTypes", "Uncecked"}) Jackson2jsonRedisSerializer Jackson2jsonRedisSerializer = Jackson2jsonRedisserializer (Object.class); ObjectMapper OM = ObjectMapper baru (); om.setVisability (PropertyAccessor.all, jsonAutodetect.visability.any); om.enableDefaultTyping (objectMapper.defaultTyping.non_final); jackson2jsonredisserializer.setObjectMapper (OM); template.setValueserializer (jackson2jsonredisserializer); }}(5) Buat usermapper baru, sebagai berikut:
Paket springboot.dao; impor org.apache.atisis.annotations.delete; import org.apache.atisis.annotations.insert; impor org.apache.ibatis.annotations.mapper; impor org.apache.ibatis.annotations.param; impor org.apache.ibatis.apache.ibatis.annotations.param; impor org.apache.ibatis.apache.ibatis.annotations. org.apache.ibatis.annotations.update; impor org.springframework.cache.annotation.cacheConfig; impor org.springframework.cache.annotation.cacheevict; impor org.springframework.cache.annotation.cacheput; impor; springboot.domain.user;@mapper@cacheconfig (cachenames = "users") antarmuka publik usermapper {@insert ("Masukkan ke dalam nilai pengguna (nama, usia) (#{name},#{usia})") int addUser (@param ("nama") nama string,@param ("usia"); @Select ("SELECT * DARI PENGGUNA WHERE ID =#{ID}") @cacheable (key = "#p0") pengguna findById (@param ("id") string id); @CachePut (key = "#p0") @update ("Perbarui nama pengguna set =#{name} di mana id =#{id}") void updateById (@param ("id") string id,@param ("name") string name); // Jika ditentukan sebagai benar, semua cache akan dihapus segera setelah metode ini disebut @cacheevict (key = "#p0", allentries = true) @delete ("hapus dari pengguna di mana id =#{id}") void deletebyid (@param ("id") ID string);@Cacheable menyimpan hasil kueri untuk redis, (key = "#p0") Menentukan parameter pertama yang dilewati sebagai kunci redis.
@Cacheput, tentukan kunci, sinkronisasi hasil yang diperbarui ke redis
@Cacheevict, tentukan kunci, hapus data cache, allentries = true, cache akan dihapus segera setelah metode dipanggil
(6) Lapisan layanan dan lapisan pengontrol terintegrasi seperti artikel sebelumnya. Mulai server Redis. Anda dapat merujuk ke blog sebelumnya untuk instalasi dan startup server Redis. Alamatnya adalah sebagai berikut:
http://www.cnblogs.com/gdpuzxs/p/6623171.html
(7) Mengkonfigurasi informasi log sebagai berikut:
## LOG4J Configuration Log4j.rootcategory = debug, stdout ## output konsol LOG4J.Appender.stdout = org.apache.log4j.consoleAppenderLog4j.Appender.stdout.layout = org.apache.log4j.patternlayoutlog4j.appender.stdout.layout.conversionpattern = %d {yyy-mm %c {1}: %l - %m %n(8) Verifikasi cache redis
Pertama, kami memasukkan sepotong data ke dalam tabel pengguna, dan database ditampilkan sebagai berikut:
Sekarang, mari kita minta data dengan ID = 24 di tabel pengguna, dan output informasi dari konsol guanzi adalah sebagai berikut:
Melalui informasi output konsol, kita dapat mengetahui bahwa kali ini kueri basis data dijalankan dan hasil kueri cache Redis diaktifkan. Selanjutnya, kami menanyakan data dengan ID = 24 di tabel pengguna lagi dan mengamati konsol, sebagai berikut:
Melalui informasi output konsol, kami dapat mengetahui bahwa kali ini, kami tidak menjalankan kueri basis data, tetapi sebaliknya kueri dari cache Redis dan mengembalikan hasil kueri. Kami memeriksa informasi di Redis, sebagai berikut:
Metode Metode FindUser menggunakan anotasi @cacheable (key = "#p0"), yang berarti ID digunakan sebagai nilai kunci dalam redis. Saat kami memperbarui data, kami harus menggunakan @CachePut (key = "#p0") untuk memperbarui data yang di -cache, jika tidak data kotor akan ditanya.
Meringkaskan
Di atas adalah metode implementasi springboot menggunakan redis cache yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu!