Heim  >  Artikel  >  Datenbank  >  So betreiben Sie Redis in SpringBoot

So betreiben Sie Redis in SpringBoot

PHPz
PHPznach vorne
2023-05-26 12:25:141777Durchsuche

Option 1: Spring Data Redis-Erstellungsprojekt

Erstellen Sie das Projekt und führen Sie Redis-Abhängigkeiten ein:

So betreiben Sie Redis in SpringBoot

Nach erfolgreicher Erstellung müssen Sie die Abhängigkeiten von Commos-Pool2 manuell einführen, also die endgültige vollständige pom.xml Die Abhängigkeiten sind wie folgt:

<dependencies>
 <dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-data-redis</artifactid>
 </dependency>
 <dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-web</artifactid>
 </dependency>
</dependencies>
<dependency>
 <groupid>org.apache.commons</groupid>
 <artifactid>commons-pool2</artifactid>
</dependency>

Die Hauptsache hier ist die Einführung des Spring Data Redis + Verbindungspools.

Konfigurieren Sie die Redis-Informationen Nach der Einführung von Spring Data Redis in das Projekt und der Konfiguration der grundlegenden Informationen von Redis wird die automatisierte Konfiguration wirksam.

Wir können die Hinweise aus der automatisierten Konfigurationsklasse von Redis in Spring Boot sehen:

spring.redis.database=0
spring.redis.password=123
spring.redis.port=6379
spring.redis.host=192.168.66.128
spring.redis.lettuce.pool.min-idle=5
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=1ms
spring.redis.lettuce.shutdown-timeout=100ms
Diese automatisierte Konfigurationsklasse ist leicht zu verstehen:

Markieren Sie dies zunächst als Konfigurationsklasse und gleichzeitig als diese Konfiguration existiert in RedisOperations Es wird erst beim nächsten Mal wirksam (das heißt, Spring Data Redis wird in das Projekt eingeführt)

Dann importieren Sie die in application.properties konfigurierten Eigenschaften

  1. Dann importieren Sie die Verbindungspoolinformationen (falls vorhanden). )

  2. Schließlich gibt es zwei Beans, RedisTemplate und StringRedisTemplate. Die Methoden der beiden sind im Wesentlichen gleich In RedisTemplate sind beide Objekte, was bedeutet, dass sowohl der Schlüssel als auch der Wert ein Objekt sein können, und die beiden Generika von StringRedisTemplate sind String, was bedeutet, dass der Schlüssel und der Wert von StringRedisTemplate nur Zeichenfolgen sein können. Diese beiden Konfigurationen werden nur wirksam, wenn der Entwickler keine zugehörigen Beans bereitstellt. Wenn die entsprechende Bean bereitgestellt wird, wird sie nicht wirksam.

  3. Mit

  4. Als nächstes können Sie StringRedisTemplate oder RedisTemplate direkt in den zu verwendenden Dienst einfügen:

    @Configuration
    @ConditionalOnClass(RedisOperations.class)
    @EnableConfigurationProperties(RedisProperties.class)
    @Import({ LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class })
    public class RedisAutoConfiguration {
      @Bean
      @ConditionalOnMissingBean(name = "redisTemplate")
      public RedisTemplate<object> redisTemplate(
          RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
        RedisTemplate<object> template = new RedisTemplate();
        template.setConnectionFactory(redisConnectionFactory);
        return template;
      }
      @Bean
      @ConditionalOnMissingBean
      public StringRedisTemplate stringRedisTemplate(
          RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
        StringRedisTemplate template = new StringRedisTemplate();
        template.setConnectionFactory(redisConnectionFactory);
        return template;
      }
    }</object></object>
    Datenoperationen in Redis können grob in zwei Typen unterteilt werden:

für Schlüsseloperationen die relevanten Methoden sind in RedisTemplate

Für Operationen an bestimmten Datentypen müssen die entsprechenden Methoden zuerst den entsprechenden Datentyp abrufen. Die Operationsmethode zum Abrufen des entsprechenden Datentyps lautet opsForXXX

  1. Rufen Sie diese Methode auf Die Daten werden in gespeichert Redis wie folgt:

  2. k1 Die vorherigen Zeichen werden durch die Verwendung von RedisTemplate verursacht, das das Ergebnis der Serialisierung des Schlüssels ist.

  3. In RedisTemplate ist das Standard-Serialisierungsschema für Schlüssel JdkSerializationRedisSerializer.

In StringRedisTemplate ist das Standard-Serialisierungsschema für den Schlüssel StringRedisSerializer. Wenn Sie StringRedisTemplate verwenden, steht daher standardmäßig kein Präfix vor dem Schlüssel.

Entwickler können das Serialisierungsschema in RedisTemplate jedoch auch selbst ändern, wie folgt:So betreiben Sie Redis in SpringBoot

@Service
public class HelloService {
 @Autowired
 RedisTemplate redisTemplate;
 public void hello() {
  ValueOperations ops = redisTemplate.opsForValue();
  ops.set("k1", "v1");
  Object k1 = ops.get("k1");
  System.out.println(k1);
 }
}
Natürlich können Sie StringRedisTemplate auch direkt verwenden:

@Service
public class HelloService {
 @Autowired
 RedisTemplate redisTemplate;
 public void hello() {
  redisTemplate.setKeySerializer(new StringRedisSerializer());
  ValueOperations ops = redisTemplate.opsForValue();
  ops.set("k1", "v1");
  Object k1 = ops.get("k1");
  System.out.println(k1);
 }
}
Darüber hinaus ist zu beachten, dass die automatisierte Konfiguration von Spring Boot nur konfiguriert werden kann Für den Redis-Cluster muss alles manuell konfiguriert werden, wie Sie den Redis-Cluster bedienen.

Option 2: Spring Cache

Verwenden Sie Spring Cache, um die Cache-Welt zu vereinheitlichen. Diese Lösung wurde bereits in einem speziellen Artikel von Brother Song vorgestellt: In Spring Boot. Der Redis-Cache kann auf diese Weise weiterhin verwendet werden! .

Option 3: Rückkehr zur ursprünglichen Ära

Die dritte Option besteht darin, Jedis oder andere Client-Tools direkt zum Betrieb von Redis zu verwenden. Diese Option wird auch in Spring Boot unterstützt

Das obige ist der detaillierte Inhalt vonSo betreiben Sie Redis in SpringBoot. 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