Heim >Datenbank >Redis >Beispielcode-Analyse für den Redis-Cache

Beispielcode-Analyse für den Redis-Cache

王林
王林nach vorne
2023-06-03 20:37:561497Durchsuche

1. Einführung

1. Szenario

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.

2. RedisTemplate

Spring Data Redis ist standardmäßig in Redis integriert und kann den Verbindungspool automatisch verwalten.

2. Redis in das Projekt integrieren

Fügen Sie eine Redis-Abhängigkeit im Service-Basismodul 2.0 hinzu und verbinden Sie sich standardmäßig mit Redis2 Redis-Verbindungskonfiguration

Service – Fügen Sie die folgende Konfiguration zu application.yml von -core hinzu

#Spring:

Redis:

Host: 192.168.100.100
Port: 6379

Datenbank: 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.

#Starten Sie den Dienst -server redis.conf

3. Testen Sie RedisTemplate

1. Erstellen Sie die Testklasse RedisTemplateTests in test

<!-- 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>

Ich habe festgestellt, dass RedisTemplate standardmäßig die JDK-Serialisierungsmethode verwendet, um Schlüssel und Werte zu speichern ist nicht lesbar

2. Fügen Sie RedisConfig zur Redis-Konfigurationsdatei hinzu

service-base. und der Wert verwendet JSON-Speicher Befolgen Sie die Prozesse normal, damit das Unternehmen normal laufen kann

@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);
    }
}

Integrierte Redis-Zusammenfassung:

(1) Importieren Sie verwandte Abhängigkeiten; Werttest speichern;

Beispielcode-Analyse für den Redis-Cache (4) Konfigurieren Sie den Serializer entsprechend Ihren eigenen Anforderungen, andernfalls wird standardmäßig der JDK-Serializer verwendet.

Redis-Geschäftszusammenfassung:

(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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen