In diesem Artikel werden die Methoden und Schritte der Verwendung von Redis -Cache im Springboot -Projekt vorgestellt. Ich werde es mit Ihnen teilen. Die Details sind wie folgt:
Spring Data Redis enthält verschiedene Vorgänge des Redis -Clients, damit wir den Gebrauch vereinfachen.
- Wenn Redis als Datenbank- oder Nachrichtenwarteschlange verwendet wird, verwenden wir im Allgemeinen Redistemplate, um zu arbeiten
- Wenn Redis als Cache verwendet wird, können wir ihn als Implementierung von Federcache verwenden, die ihn direkt über Annotation verwenden
1. Übersicht
Die effektive Verwendung von Redis -Cache in Anwendungen kann die Systemleistung gut verbessern, insbesondere für Abfragebetriebe, was den Datenbankdruck effektiv reduzieren kann.
Für einen bestimmten Code finden Sie in diesem Beispielprojekt
2. Fügen Sie eine Referenz hinzu
Machen Sie mit Build.gradle bei
compile ('org.springframework.boot: Spring-Boot-Starter-Data-Redis')SpringBoot führt automatisch Redis-bezogene JAR-Pakete ein. Nach dem Hinzufügen dieser Referenz müssen Sie Redis lokal installieren und starten. Andernfalls wird ein Fehler gemeldet, wenn das Programm startet.
3. Aktivieren Sie den Cache durch Anmerkungen
Es ist sehr einfach, Redis im Springboot zu aktivieren. Sie müssen nur die Annotation @EnableCaching in die Hauptklasse der Anwendungsstätte hinzufügen und dann die @cacheable Annotation auf die Abfragemethode hinzufügen, die Cache aktivieren muss.
@SpringBootApplication@EnableCachingPublic Class DemoApplication implementiert CommandLinerUnner {...Abfrageschnittstelle:
public interface testRepository erweitert Jarepository <test, Integer> {@cacheable (value = "testcache") öffentlicher Test FindOne (Integer ID);}Entitätsklassen müssen die serialisierbare Schnittstelle implementieren. Andernfalls meldet das Programm einen Fehler, da das Java -Objekt nicht in Redis serialisiert werden kann. Redis in Springboot verwendet standardmäßig defaultSerializer, das die eigene Serialisierungsmethode von JDK verwendet.
Es gibt insgesamt die folgenden Serialisierungsmethoden. Informationen zu bestimmten Nutzungsszenarien finden Sie in der offiziellen Dokumentation.
1. GenericJackson2JsonRedisSerializer
2. GenerictoStringserializer
3. Jackson2JsonRedisserializer
4. JacksonJsonRedisSerializer
5. JdkserializationReDisSerializer
6. Oxmserializer
7. StringRedisserializer
Zu diesem Zeitpunkt kann unser Programm Daten aus dem Redis -Cache abfragen. Wenn es Ihnen nichts ausmacht, die Ästhetik des in Redis gespeicherten Schlüssels, wird die Arbeit vorbei sein.
4. Schöner Schlüssel
Führen Sie nach der Ausführung unseres Programms den Befehl Schlüssel * in Redis-Cli aus und Sie werden feststellen, dass der Wert des Schlüssels eine Reihe von Dingen ist, die dem verstümmelten Code ähneln:
"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 "
Der Hauptwert darin ist wahrscheinlich inakzeptabel für das Betriebs- und Wartungspersonal von Redis. Wir müssen einen Weg finden, um den wichtigsten Wert besser aussehen zu lassen, zumindest die Leute dazu zu bringen, ihn zu verstehen.
Der Grund für den oben genannten Schlüsselwert ist, dass die SimpleKey -Klasse im Frühjahr standardmäßig verwendet wird, um den Redis -Schlüssel zu generieren.
Die Lösung ist auch sehr einfach. Fügen Sie Cache -Konfiguration hinzu und geben Sie an, wie Redis Schlüssel erzeugt:
@ConfigurationPublic Class CacheConfig erweitert CachingConfigurersupport {@autowired private redistemplate redistemplate; @Bean public CacheManager CacheManager () {redistemplate.setKeySerializer (neuer GenericToStringSerializer <Object> (Object.Class)); RediscaCheManager cacheManager = neuer rediscachemanager (redistemplate); CacheManager.SetDefaultExpiration (3600); CACHEMANAGER.SETUSEPREFIX (TRUE); CACHEMANAGER.SETCACHEPREFIX (neuer rediscacheprefix () {private endgültige redisserializer <string> serializer = new StringRedisserializer (); CacheManager zurückgeben; }}in
Die Codekopie lautet wie folgt:
redistemplate.setkeyserializer (neuer GenericToStringSerializer <Object> (Object.Class));
Diese Codezeile gibt die Erzeugungsmethode der Schlüsselwerte in Redis an. Die Serialisierungsmethode von GenerictoStringSerializer wandelt das Java -Objekt in eine Zeichenfolge um und speichert es in Redis.
5. Zusammenfassung
Das Aktivieren von Redis -Cache im Springboot ist sehr einfach. Sie müssen nur einige Anmerkungen hinzufügen. At the same time, we can add cache configuration to make the key values stored in redis have good readability, rather than a bunch of garbled data.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.