Teilen über


Verwendung des Azure Redis Cache in Spring

Azure Cache für Redis stellt einen In-Memory-Datenspeicher basierend auf der Redis-Software bereit. Redis verbessert die Leistung und Skalierbarkeit einer Anwendung, die stark Back-End-Datenspeicher verwendet.

In diesem Lernprogramm wird veranschaulicht, wie Sie einen Redis-Cache zum Speichern und Abrufen von Daten in einer Spring Boot-Anwendung verwenden.

In diesem Lernprogramm enthalten wir zwei Authentifizierungsmethoden: Microsoft Entra-Authentifizierung und Redis-Authentifizierung. Auf der Registerkarte "Kennwortlos" wird die Microsoft Entra-Authentifizierung angezeigt, und auf der Registerkarte "Kennwort" die Redis-Authentifizierung.

Die Microsoft Entra-Authentifizierung ist ein Mechanismus zum Herstellen einer Verbindung mit Azure Cache für Redis mithilfe von Identitäten, die in Microsoft Entra ID definiert sind. Mit der Microsoft Entra-Authentifizierung können Sie Datenbankbenutzeridentitäten und andere Microsoft-Dienste an einem zentralen Ort verwalten, wodurch die Berechtigungsverwaltung vereinfacht wird.

Redis-Authentifizierung verwendet Kennwörter in Redis. Wenn Sie sich dafür entscheiden, Kennwörter als Anmeldeinformationen zu verwenden, müssen Sie die Kennwörter selbst verwalten.

Voraussetzungen

  • Ein Azure-Abonnement – eins kostenloserstellen.

  • Java Development Kit (JDK) Version 17 oder höher.

  • Apache Maven, Version 3.0 oder höher.

  • cURL oder ein ähnliches HTTP-Hilfsprogramm zum Testen der Funktionalität.

  • Eine Redis-Cacheinstanz. Wenn Sie keins haben, finden Sie weitere Informationen unter Schnellstart: Erstellen eines Open-Source-Redis-Caches.

  • Eine Spring Boot-Anwendung. Wenn Sie keine Spring Boot-Anwendung besitzen, erstellen Sie mit Spring Initializr ein Maven-Projekt. Achten Sie darauf, Maven Project auszuwählen und fügen Sie anschließend unter Abhängigkeitendie Abhängigkeiten Spring Web und Spring Data Reactive Redis hinzu. Danach wählen Sie Java Version 8 oder höher aus.

Zwischenspeichern von Daten im Azure-Cache für Redis

Mit einer Azure Cache für Redis-Instanz können Sie Daten mithilfe von Spring Cloud Azure zwischenspeichern.

Um das Spring Cloud Azure Starter Data Redis mit Lettuce-Modul zu installieren, fügen Sie Ihrer pom.xml Datei die folgenden Abhängigkeiten hinzu:

<dependencies>
 <dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
 </dependency>
 <dependency>
   <groupId>com.azure.spring</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
 </dependency>
</dependencies>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-dependencies</artifactId>
      <version>5.20.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Anmerkung

Diese Stückliste (Bill of Material, BOM) sollte im Abschnitt <dependencyManagement> Ihrer pom.xml Datei konfiguriert werden. Diese Konfiguration stellt sicher, dass alle Spring Cloud Azure-Abhängigkeiten dieselbe Version verwenden. Weitere Informationen zu der version, die für diese BOM verwendet wird, finden Sie unter Welche Version von Spring Cloud Azure sollte ichverwenden.

Code der Anwendung

Um einen Redis-Cache zum Speichern und Abrufen von Daten zu verwenden, konfigurieren Sie die Anwendung mithilfe der folgenden Schritte:

  1. Konfigurieren Sie die Anmeldeinformationen für den Redis-Cache in der Konfigurationsdatei application.properties, wie im folgenden Beispiel gezeigt.

    spring.data.redis.host=<your-redis-name>.redis.cache.windows.net
    spring.data.redis.port=10000
    spring.data.redis.username=<your-redis-username>
    spring.data.redis.ssl.enabled=true
    spring.data.redis.azure.passwordless-enabled=true
    
    spring.data.redis.host=<your-redis-name>.redis.cache.windows.net
    spring.data.redis.port=6380
    spring.data.redis.username=<your-redis-username>
    spring.data.redis.ssl.enabled=true
    spring.data.redis.azure.passwordless-enabled=true
    

    Anmerkung

    Um den Wert für username zu erhalten, befolgen Sie die Anweisungen im Abschnitt Aktivieren der Microsoft Entra ID-Authentifizierung im Cache von Verwenden der Microsoft Entra-ID für die Cacheauthentifizierung, und kopieren Sie den Wert für den Benutzernamen.

  2. Bearbeiten Sie die Startklassendatei, um den folgenden Inhalt anzuzeigen. Dieser Code speichert und ruft Daten ab.

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.data.redis.core.ValueOperations;
    
    @SpringBootApplication
    public class DemoCacheApplication implements CommandLineRunner {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(DemoCacheApplication.class);
    
        @Autowired
        private StringRedisTemplate template;
    
        public static void main(String[] args) {
            SpringApplication.run(DemoCacheApplication.class, args);
        }
    
        @Override
        public void run(String... args) {
            ValueOperations<String, String> ops = this.template.opsForValue();
            String key = "testkey";
            if(!this.template.hasKey(key)){
                ops.set(key, "Hello World");
                LOGGER.info("Add a key is done");
            }
            LOGGER.info("Return the value from the cache: {}", ops.get(key));
        }
    
    }
    

Starten Sie dann die Anwendung. Die Anwendung ruft Daten aus Ihrem Redis-Cache ab. Ihnen sollten Protokolle ähnlich dem folgenden Beispiel angezeigt werden:

Add a key is done
Return the value from the cache: Hello World

Bereitstellen in Azure Spring Apps

Nachdem Sie nun die Spring Boot-Anwendung lokal ausgeführt haben, ist es an der Zeit, sie in die Produktion zu verschieben. Azure Spring Apps erleichtert die Bereitstellung von Spring Boot-Anwendungen in Azure ohne Codeänderungen. Der Dienst verwaltet die Infrastruktur von Spring-Anwendungen, damit Entwickler sich auf ihren Code konzentrieren können. Azure Spring Apps bietet eine Lebenszyklusverwaltung mit umfassender Überwachung und Diagnose, Konfigurationsverwaltung, Dienstermittlung, CI/CD-Integration, Blau/Grün-Bereitstellungen und mehr. Informationen zum Bereitstellen Ihrer Anwendung in Azure Spring Apps finden Sie unter Bereitstellen Ihrer ersten Anwendung in Azure Spring Apps.

Nächste Schritte

Um mehr über Spring und Azure zu erfahren, fahren Sie mit dem Spring on Azure-Dokumentationscenter fort.