Heim  >  Artikel  >  Datenbank  >  So verwenden Sie Spring Boot, um schnell einen verteilten Sitzungscache basierend auf Redis zu erstellen

So verwenden Sie Spring Boot, um schnell einen verteilten Sitzungscache basierend auf Redis zu erstellen

WBOY
WBOYnach vorne
2023-05-27 20:49:27941Durchsuche

Verwenden Sie Spring Boot, um schnell eine verteilte Sitzungs-Cache-Lösung basierend auf Redis zu erstellen

In großen Webanwendungen ist die Sitzungsverwaltung sehr wichtig, was durch die Speicherung auf einer Maschine nicht erfüllt werden kann.

Normalerweise gibt es die folgenden Methoden:

  1. Persistenz von Sitzungen in der Datenbank.

  2. De-Sessionisierung, z. B. das Speichern von Informationen in Cookies unsicher.

3. Speichern Sie die Sitzung in einer verteilten NoSQL-Datenbank, wie z. B. Redis.

Schritt eins: Richten Sie eine Spring Boot-Entwicklungsumgebung ein Konfigurieren Sie die Redis-Verbindungseigenschaften in der Datei application.properties

<!--基于redis的分布式session存储-->
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>

Schritt 2: Aktivieren Sie die Annotation @EnableRedisHttpSession

######   Redis config start ######
spring.redis.database=0
spring.redis.host=192.168.41.60
spring.redis.port=6379
spring.redis.password=
spring.redis.pool.max-active=20
spring.redis.pool.max-wait=-1
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
spring.redis.timeout=0
######   Redis config end ######

Der Quellcode der Annotation @EnableRedisHttpSession lautet wie folgt

maxInactiveIntervalInSeconds: die Ablaufzeit der Daten in der Sitzung (nicht die Ablaufzeit der Sitzung in Redis)

    In meiner Konfiguration habe ich einen Namespace namens „mysession“ angegeben, um die aktuelle Anwendung zu identifizieren
  • redisFlushMode: Die Art und Weise, wie Redis die Sitzung speichert, hat standardmäßig zwei Möglichkeiten:
  • IMMEDIATE

    : Sofort speichern, sobald die Sitzung erstellt wird.

    ON_SAVE
  • : Es wird nicht gespeichert, wenn die Sitzung erstellt wird, sondern beim Hinzufügen Daten zur Sitzung

  • @Configuration
    @EnableRedisHttpSession(redisNamespace = "mysession",maxInactiveIntervalInSeconds = 60*60*24)
    public class SessionConfig
    Schritt 3: Testen Schreiben Sie einen Controller
    @Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
    @Target({ java.lang.annotation.ElementType.TYPE })
    @Documented
    @Import(RedisHttpSessionConfiguration.class)
    @Configuration
    public @interface EnableRedisHttpSession
        int maxInactiveIntervalInSeconds() default 1800;
    
        String redisNamespace() default "";
    
        RedisFlushMode redisFlushMode() default
    Wenn der Browser auf den Link http://localhost:8080/hello/admin zugreift, empfängt die
hello-Methode die übergebenen Parameter Öffnen Sie den Browser, speichern Sie sie in der Sitzung und speichern Sie dann die Sitzung. Speichern Sie sie in Redis Unter diesem Standardverzeichnis

Als nächstes besuchen wir http://localhost:8080/getName. Sie können sehen, dass der Browser den Administrator anzeigt, den wir gerade in der Sitzung gespeichert haben

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Spring Boot, um schnell einen verteilten Sitzungscache basierend auf Redis zu erstellen. 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