(1) pom.xml stellt das JAR -Paket wie folgt vor:
<Depopenty> <gruppe> org.springframework.boot </Groupid> <artifactId> Spring-Boot-Starter-Data-Redis </artifactid> </abhängig>
(2) Ändern Sie die Projektstartklasse, fügen Sie Annotation @enableCaching hinzu und aktivieren Sie die Caching -Funktion wie folgt:
Paket Springboot; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootApplication; import org.springframework.Annotation.enableCaching; Importierung; org.springFramework.Scheduling.annotation.EnableScheduling;@SpringBootApplication@enableScheduling@EnableCachingPublic Class SpringbootApplication {public static void -Main (String [] args) {SpringApplication.run (SpringBootaplication.classe, Arg. }}(3) Konfigurieren von Redis -Verbindungsinformationen in application.Properties wie folgt:
# REDIS-Datenbankindex (Standard ist 0) Spring.Redis.Database = 0# REDIS-Serveradresse Spring.Redis.Host = 172.31.19.222# REDIS-Serververbindungsport Spring.Redis. Maximale Blockierung Wartezeit für den Verbindungspool (unter Verwendung negativer Werte bedeutet keine Grenze) Spring.
(4) Erstellen Sie wie folgt eine neue Redis -Cache -Konfigurationsklasse REDISCONFIG:
Paket Springboot.Config; import org.springframework.bean.factory.Annotation org.springframework.context.annotation.bean; import org.springframework.context.annotation org.springframework.data.redis.core.redistemplate; import org.springframework.data.redis.core.StringRedistemplate; com.fasterxml.jackson.annotation.propertyAccessor; import com.fasterxml.jackson.databind.objectMapper; @Value ("$ {spring.redis.host}") privater String -Host; @Value ("$ {spring.redis.port}") privater int port; @Value ("$ {spring.redis.timeout}") Private int timeout; // Benutzerdefinierte Strategie für benutzerdefinierte Cacheschlüssel // @bean // public KeyGenerator KeyGenerator () {// neuer KeyGenerator () {// @override // öffentliches Objekt generieren (Objektziel, java.lang.reflect.method -Methode, Objekt ... Params) {// StringBuffer sb = new StringBuffer (); ////////// //) // // // //); // //); // //). sb.append(target.getClass().getName());// sb.append(method.getName());// for(Object obj:params){// sb.append(obj.toString());// }// return sb.toString();// }// };// } // } // } // } // } // Cache -Manager @Bean Public CacheManager CacheManager (@Suppresswarnings ("Rawtypes") redistemplate redistemplate) {rediscachemanager cacheManager = new rediscachemanager (redistemplate); // Cache -Ablaufzeit setzen CacheManager.SetDefaultExpiration (10000); CacheManager zurückgeben; } @Bean public redistemplate <String, String> redISTemplate (redisconnectionFactory Factory) {StringRteMplate Vorlage = new StringRedItemplate (Factory); setSerializer (Vorlage); // Setzen Sie die Serialisierungswerkzeugvorlage. Rückgabevorlage; } private void setSerializer (StringRedistemplate -Vorlage) {@Suppresswarnings ({"rawtypes", "Deaktiviert"}) Jackson2JsonRedisserializer Jackson2JsonRedisserializer = New Jackson2JsonRedisserializer (Object.class); ObjectMapper om = new ObjectMapper (); Om.Setvisability (PropertyAccessor.All, JSONAutodetekt.Visability.any); om.EnabledEfaulttyPing (ObjectMapper.DefaulttyPing.non_final); Jackson2JsonRedisserializer.SetObjectMapper (OM); template.setValueSerializer (Jackson2JsonRedisserializer); }}(5) Erstellen Sie wie folgt einen neuen UsMapper:
Paket Springboot.Dao; import org.apache.ibatis.annotations.delete; import org.apache.ibatis.Annotations.insert; import org.apache.ibatis.Annotations.mapper; org.apache.ibatis.annotations.update; import org.springframework.cache.annotation.cacheConfig; import org.springframework.cache.annotation SpringBoot.Domain.user;@mapper@cacheConfig (CacheNames = "Benutzer") public interface usermapper {@insert ("in Benutzer einfügen (Name, Alter) Werte (#{name},#{Age})") int adduser (@param ("name") String name,@param ("älter"); @Select ("SELECT * Vom Benutzer wob @Cacheput (key = "#p0") @Update ("Benutzer set name =#{name} wob // Wenn als wahr angegeben ist, werden alle Caches unmittelbar nach der Methode gelöscht @cacheevict (key = "#p0", Allentries = true) @Delete ("vom Benutzer löschen wob@Cacheable Caches Das Abfrageergebnis zu Redis (Key = "#p0") Gibt den ersten Parameter an, der als Taste von REDIS übergeben wurde.
@Cacheput, Geben Sie den Schlüssel an, synchronisieren Sie die aktualisierten Ergebnisse, um sie zu entfernen
@Cacheevict, geben Sie Schlüssel an, löschen
(6) Die Dienstschicht und die Controller -Ebene sind wie im vorherigen Artikel integriert. Starten Sie den Redis -Server. Sie können sich im vorherigen Blog für die Installation und den Start des Redis -Servers beziehen. Die Adresse lautet wie folgt:
http://www.cnblogs.com/gdpuzxs/p/6623171.html
(7) Die Protokollinformationen wie folgt konfigurieren:
## LOG4J -Konfiguration log4j.rootcategory = debug, stdout ## Konsoleausgabe log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c {1}: %l - %m %n(8) Überprüfen Sie den Redis -Cache
Zunächst fügen wir ein Datenstück in die Benutzertabelle ein, und die Datenbank zeigt wie folgt an:
Fragen wir nun die Daten mit ID = 24 in der Benutzertabelle ab und die Informationsausgabe aus der Guanzi -Konsole lautet wie folgt:
Durch die Informationen zur Konsolenausgabe können wir wissen, dass diesmal die Datenbankabfrage ausgeführt wurde und die Ergebnisse der Redis -Cache -Abfrage aktiviert waren. Als nächstes fragen wir die Daten mit ID = 24 in der Benutzertabelle erneut ab und beobachten die Konsole wie folgt:
Durch die Informationen zur Konsolenausgabe können wir wissen, dass wir dieses Mal die Datenbankabfrage nicht ausgeführt haben, sondern sie aus dem Redis -Cache abfragen und das Abfrageergebnis zurückgeben. Wir überprüfen die Informationen in Redis wie folgt:
Die Methode FindUser -Methode verwendet die Annotation @cacheable (key = "#p0"), was bedeutet, dass ID als Schlüsselwert in Redis verwendet wird. Wenn wir die Daten aktualisieren, sollten wir @cacheput (Key = "#p0") verwenden, um die zwischengespeicherten Daten zu aktualisieren, ansonsten werden schmutzige Daten abgefragt.
Zusammenfassen
Das obige ist die Implementierungsmethode von Springboot mit Redis -Cache, die Ihnen vom Editor vorgestellt wurde. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten!