Da sich das Datenwörterbuch nicht sehr häufig ändert und das System häufiger auf das Datenwörterbuch zugreift, müssen wir die Daten im Datenwörterbuch im Cache speichern, um die Datenbank zu reduzieren Druck und Verbesserung der Zugriffsgeschwindigkeit. Hier verwenden wir Redis als verteilte Cache-Middleware des Systems.
Spring Data Redis ist standardmäßig in Redis integriert und kann den Verbindungspool automatisch verwalten.
Service – Fügen Sie die folgende Konfiguration zu application.yml von -core hinzu
#Spring:Redis:
Host: 192.168.100.100Port: 6379#Starten Sie den Dienst -server redis.confDatenbank: 0
Passwort: 123456 #Standard ist leer
Timeout: 3000 ms #Maximale Wartezeit. Bei einer Zeitüberschreitung wird eine Ausnahme ausgelöst, andernfalls wartet die Anfrage weiter
lettuce:
pool:
max-active: 20 #Maximale Anzahl von Verbindungen, negativer Wert bedeutet keine Begrenzung, Standard 8
max-wait: -1 #Maximale Blockierwartezeit, negativer Wert Zeigt keine Begrenzung an, Standard -1
max-idle: 8 #Maximale Leerlaufverbindung, Standard 8
Min-idle: 0 #Minimale Leerlaufverbindung, Standard 0
3. Starten Sie den Redis-Dienst. Stellen Sie eine Remoteverbindung zum Linux-Server her, hier lokal. Verwenden Sie Redis auf der virtuellen Centos-Maschine.
3. Testen Sie RedisTemplate
1. Erstellen Sie die Testklasse RedisTemplateTests in test2. Fügen Sie RedisConfig zur Redis-Konfigurationsdatei hinzuservice-base. und der Wert verwendet JSON-Speicher Befolgen Sie die Prozesse normal, damit das Unternehmen normal laufen kann<!-- spring boot redis缓存引入 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- 缓存连接池--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> <!-- redis 存储 json序列化 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> </dependency>Nach dem Login kopieren
Ich habe festgestellt, dass RedisTemplate standardmäßig die JDK-Serialisierungsmethode verwendet, um Schlüssel und Werte zu speichern ist nicht lesbar
@SpringBootTest @RunWith(SpringRunner.class) public class RedisTemplateTests { @Resource private RedisTemplate redisTemplate; @Resource private DictMapper dictMapper; @Test public void saveDict(){ Dict dict = dictMapper.selectById(1); //向数据库中存储string类型的键值对, 过期时间5分钟 redisTemplate.opsForValue().set("dict", dict, 5, TimeUnit.MINUTES); } }
(4) Konfigurieren Sie den Serializer entsprechend Ihren eigenen Anforderungen, andernfalls wird standardmäßig der JDK-Serializer verwendet.
(1) Fragen Sie zunächst ab, ob in Redis entsprechende Cache-Informationen vorhanden sind. Wenn dies der Fall ist, werden diese direkt ohne Ausführung abgerufen und zurückgegeben. (2) Wenn Redis aus irgendeinem Grund nicht verbunden werden kann, z Als Ausfallzeit drucken Sie zu diesem Zeitpunkt das Fehlerprotokoll und fragen weiterhin die Datenbank ab.
(2) Wenn nicht, fragen Sie die Datenbank ab, speichern Sie die Daten in Redis und geben Sie die Daten zurück.
Das obige ist der detaillierte Inhalt vonBeispielcode-Analyse für den Redis-Cache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!