Heim  >  Artikel  >  Java  >  Beispielanalyse der Java Redis Redisson-Konfiguration

Beispielanalyse der Java Redis Redisson-Konfiguration

WBOY
WBOYnach vorne
2023-04-25 08:19:061347Durchsuche

Erforderlicher Maven e

Con einer anderen Redissons-Feigenkonfigurationsmethode

Redisson's Config (Standard) allein Versionskonfiguration)

        <!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
                 <exclusions>
                     <exclusion>
                         <groupId>io.lettuce</groupId>
                         <artifactId>lettuce-core</artifactId>
                     </exclusion>
                 </exclusions>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
        <!--     多台相同应用(负载均),Session共享  -->
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.17.5</version>
        </dependency>

Redissons Konfiguration (Sentinel-Versionskonfiguration)

kann so verstanden werden, dass der Masterknoten gelöscht wird und die untergeordneten Knoten automatisch den Masterknoten ergänzen

spring:
  redis:
    host: 106.12.174.220
    port: 6379
    password: 123456           #没有密码就保留空
    timeout: 5000
    jedis:
       pool:
         max-active: 1000 # 池在给定时间可以分配的最大连接数。使用负值表示无限制。
         max-idle: 50  #池中“空闲”连接的最大数量。使用负值表示空闲连接的数量不受限制
         min-idle: 10  # 目标是池中要维护的最小空闲连接数。此设置只有在它和逐出运行之间的时间均为正值时才有效。
         max-wait: -1  # 在池耗尽时引发异常之前,连接分配应阻止的最长时间。使用负值无限期阻塞。
    redisson:
      tokenName: Authorization    # 用于分布式锁的唯一标识,一般使用token如果没有找到,就找sessionId
  session:
    store-type: redis   #设置session保存为默认redis的方式 ,可以解决分布式session不一致问题
Redissons Konfiguration (Master-Slave-Versionskonfiguration)

kann Es ist so zu verstehen, dass das Lesen und Schreiben von Redis getrennt ist, aber wenn der Master-Knoten auflegt, kann der untergeordnete Knoten nicht automatisch auf den Master-Knoten aktualisiert werden, wie im Sentinel-Modus Modus)Rot Die Knoten im Sperrmodus müssen alle Master-Knoten oder alle eigenständige Redis sein Split-Brain-Problem.

Manchmal ist das Programm so clever. Wenn sich beispielsweise ein Knoten aufhängt, erwerben mehrere Clients gleichzeitig die Sperre. Wenn Sie diese geringe Fehlerwahrscheinlichkeit akzeptieren können, ist die Verwendung der bisherigen Replikationslösung kein Problem. Ansonsten empfehlen wir Ihnen, die unten beschriebene Lösung umzusetzen.

Angenommen, es gibt 5 Redis-Knoten. Zwischen diesen Knoten besteht weder eine Master-Slave- noch eine Cluster-Beziehung. Der Client verwendet denselben Schlüssel und Zufallswert, um Sperren auf 5 Knoten anzufordern. Die Zeitüberschreitung für die Anforderung von Sperren sollte kürzer sein als die automatische Freigabezeit der Sperre. Wenn die Sperre auf 3 (mehr als der Hälfte) Redis angefordert wird, wird die Sperre tatsächlich erworben. Wenn die Sperre nicht erhalten wird, werden einige der gesperrten Redis freigegeben.

import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

@Configuration
//设置session的默认在redis中的存活时间
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 7200)   //Session过期时间,2小时,默认1800秒(半小时)   -1 永不过期
public class SessionConfig {}

Das obige ist der detaillierte Inhalt vonBeispielanalyse der Java Redis Redisson-Konfiguration. 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