Freigeben über


Schnellstart: Verwenden von Azure Cache for Redis in Java mit Redisson Redis-Client

In dieser Schnellstartanleitung integrieren Sie Azure Cache for Redis in eine Java-App mit dem Redisson Redis-Client und der JCP-Standard-API JCache. Diese Dienste gewährleisten Ihnen Zugriff auf einen sicheren, dedizierten Zwischenspeicher, der von jeder Anwendung in Azure aus zugänglich ist. Dieser Artikel enthält zwei Optionen zum Auswählen der Azure-Identität, die für die Redis-Verbindung verwendet werden soll.

Überspringen und mit dem Code auf GitHub fortfahren

Dieser Schnellstart verwendet das Maven Archetype-Feature, um das Gerüst für die App zu generieren. In dem Schnellstart werden Sie aufgefordert, den generierten Code so zu ändern, dass er zur Beispiel-App führt. Wenn Sie direkt mit dem fertigen Code fortfahren möchten, finden Sie im Java-Schnellstart auf GitHub weitere Informationen.

Voraussetzungen

Erstellen einer Azure Managed Redis-Instanz

  1. Um eine Azure Managed Redis-Instanz zu erstellen, melden Sie sich beim Azure-Portal an, und wählen Sie " Ressource erstellen" aus.

  2. Geben Sie auf der Seite Neu im Suchfeld Azure Cache for Redis ein.

  3. Konfigurieren Sie auf der Registerkarte "Neuer Redis-Cache " die Einstellungen für Ihren neuen Cache in den Grundlagen.

    Konfiguration Wert auswählen BESCHREIBUNG
    Abonnement Öffnen Sie die Dropdownliste, und wählen Sie Ihr Abonnement aus. Das Abonnement, unter dem diese neue Azure Managed Redis-Instanz erstellt wird.
    Ressourcengruppe Öffnen Sie die Dropdownliste, und wählen Sie eine Ressourcengruppe aus, oder wählen Sie Neu erstellen aus, und geben Sie einen Namen für eine neue Ressourcengruppe ein. Der Name der Ressourcengruppe, in der Ihr Cache und weitere Ressourcen erstellt werden. Wenn Sie alle Ihre App-Ressourcen in einer Ressourcengruppe zusammenfassen, können Sie sie einfacher gemeinsam verwalten oder löschen.
    Name Geben Sie einen Namen ein, der in der Region eindeutig ist. Der Cachename muss zwischen 1 und 63 Zeichen lang sein, wenn er mit dem Regionsnamen des Cache kombiniert wird, und darf nur Ziffern, Buchstaben und Bindestriche enthalten. (Wenn der Cachename weniger als 45 Zeichen lang ist, sollte er in allen derzeit verfügbaren Regionen funktionieren.) Der Name muss mit einer Zahl oder einem Buchstaben beginnen und enden und darf keine aufeinanderfolgenden Bindestriche enthalten. Der Hostname Ihrer Cache-Instanz ist \<DNS name\>.\<Azure region\>.redis.azure.net.
    Region Öffnen Sie die Dropdownliste, und wählen Sie einen Standort aus. Azure Managed Redis ist in ausgewählten Azure-Regionen verfügbar.
    Datenebene Wählen Sie entweder im Arbeitsspeicher für hohe Leistung oder Flash für Caches mit geringerer Leistung aus. Zu den In-Memory-Ebenen gehören "Balanced", "Memory Optimized" und "Compute Optimized". Verwenden Sie die Flash-Ebene , um Arbeitsspeicher (RAM) und SSD-Datenspeicher (On-Disk) zu verwenden.
    Cachegröße Öffnen Sie die Dropdownliste, und wählen Sie eine Größe aus. Die Cachegröße hängt von der Ebene ab. Die kleinste Größe ist eine Ebene „Ausgewogen“. Die Größe mit dem größten Arbeitsspeicher ist eine Ebene „Arbeitsspeicheroptimiert“.
    Leistung Öffnen Sie die Dropdownliste, und wählen Sie eine Leistungseinstellung aus. Die Leistung hängt von der Anzahl der vCPUs ab. Die Anzahl der vCPU variiert je nach Ebene. Compute Optimized verfügt über die meisten vCPUs.

    Hinweise zum Auswählen der richtigen Leistungsklasse finden Sie unter Auswählen der richtigen Leistungsklasse.

    Von Bedeutung

    Alle Arbeitsspeicherebenen, die mehr als 120 GB Speicherplatz verwenden, befinden sich in der öffentlichen Vorschau, einschließlich „Arbeitsspeicheroptimiert M150“ und höher; „Ausgewogen B150“ und höher; und „Für Compute optimiert X150“ und höher. Alle diese Ebenen und höher befinden sich in der öffentlichen Vorschau.

    Alle für Flash optimierten Ebenen befinden sich in der öffentlichen Vorschau.

  4. Wählen Sie "Weiter" aus: Netzwerk , und wählen Sie entweder einen öffentlichen Endpunkt oder einen privaten Endpunkt aus.

  5. Wählen Sie "Weiter" aus: Aktive Georeplikation. Um die aktive Georeplikation zu verwenden, muss sie während der Bereitstellung aktiviert werden. Caches ohne aktive Georeplikation können später nicht zu aktiven Georeplikationsgruppen hinzugefügt oder beitreten. Weitere Informationen finden Sie unter Konfigurieren der aktiven Georeplikation für Azure Managed Redis-Instanzen.

  6. Wählen Sie die Registerkarte "Weiter: Erweitert " aus.

    Konfigurieren Sie alle Redis-Module , die Sie der Instanz hinzufügen möchten.

    Folgendes gilt standardmäßig für neue verwaltete Caches:

    • Microsoft Entra ID ist aktiviert.
    • Die Authentifizierung mit Zugriffsschlüsseln ist aus Sicherheitsgründen deaktiviert.

    Von Bedeutung

    Für eine optimale Sicherheit empfehlen wir, Microsoft Entra ID mit verwalteten Identitäten zu verwenden, um Anforderungen nach Möglichkeit für Ihren Cache zu autorisieren. Die Autorisierung mit Microsoft Entra ID und verwalteten Identitäten bietet eine höhere Sicherheit und Benutzerfreundlichkeit als die Autorisierung mit gemeinsam verwendetem Schlüssel. Weitere Informationen zum Verwenden verwalteter Identitäten mit Ihren Caches finden Sie unter Verwenden von Microsoft Entra ID für die Cacheauthentifizierung.

    Festlegen der Clusteringrichtlinie:

    • Verwenden von Enterprise zum Verwenden von RedisSearch oder anderen Modulen
    • Verwenden Sie OSS für einen gruppierten Cache.
    • Verwenden Sie nicht gruppierte (Vorschau) für einen nicht gruppierten Cache.

    Weitere Informationen zum Auswählen einer Clusterrichtlinie finden Sie unter Clusterrichtlinie.

    Von Bedeutung

    Sie können die Clusteringrichtlinie einer Azure Managed Redis-Instanz nach dem Erstellen nicht mehr ändern. Wenn Sie RediSearch verwenden, ist die Enterprise-Clusterrichtlinie erforderlich, und NoEviction wird die einzige Entfernungsrichtlinie unterstützt.

    Von Bedeutung

    Wenn Sie diese Cacheinstanz in einer Georeplikationsgruppe verwenden, können Entfernungsrichtlinien nach der Erstellung der Instanz nicht mehr geändert werden. Achten Sie darauf, die Entfernungsrichtlinie Ihrer primären Knoten zu kennen, bevor Sie den Cache erstellen. Weitere Informationen zur aktiven Georeplikation finden Sie unter Voraussetzungen für die aktive Georeplikation.

    Von Bedeutung

    Module können nach dem Erstellen einer Cache-Instanz nicht mehr geändert werden. Module müssen zum Zeitpunkt der Erstellung einer Azure Cache for Redis-Instanz aktiviert sein. Es gibt keine Option, die Konfiguration eines Moduls zu aktivieren, nachdem Sie einen Cache erstellt haben.

  7. Wählen Sie Weiter: Tags aus, und überspringen Sie den Schritt.

  8. Klicken Sie auf Weiter: Überprüfen + erstellen.

  9. Überprüfen Sie die Einstellungen, und wählen Sie Erstellen aus.

    Das Erstellen der Redis-Instanz dauert einige Minuten. Sie können den Fortschritt auf der Seite Übersicht von Azure Managed Redis überwachen. Wenn Wird ausgeführt als Status angezeigt wird, ist der Cache einsatzbereit.

Erstellen einer Azure Cache for Redis-Instanz

  1. Suchen Sie im Azure-Portal nach Azure-Cache für Redis, und wählen Sie sie aus.

  2. Wählen Sie auf der Seite "Azure Cache für Redis" die Option"Azure-Cache für Redis>" aus.

  3. Konfigurieren Sie auf der Registerkarte " Grundlagen " auf der Seite "Neuer Redis-Cache " die folgenden Einstellungen:

    • Abonnement: Wählen Sie das zu verwendende Abonnement aus.
    • Ressourcengruppe: Wählen Sie eine Ressourcengruppe aus, oder wählen Sie "Neu erstellen " aus, und geben Sie einen neuen Ressourcengruppennamen ein. Wenn Sie alle App-Ressourcen in derselben Ressourcengruppe platzieren, können Sie sie ganz einfach verwalten oder löschen.
    • Name: Geben Sie einen Cachenamen ein, der in der Region eindeutig ist. Der Name muss folgende Kriterien erfüllen:
      • Eine Zeichenfolge von 1 bis 63 Zeichen.
      • Nur Zahlen, Buchstaben und Bindestriche enthalten.
      • Beginnen und enden Sie mit einer Zahl oder einem Buchstaben.
      • Er darf keine aufeinanderfolgenden Bindestriche enthalten.
    • Region: Wählen Sie eine Azure-Region in der Nähe anderer Dienste aus, die Ihren Cache verwenden.
    • Cache-SKU: Wählen Sie eine SKU aus, um die verfügbaren Größen, Leistung und Features für Ihren Cache zu ermitteln.
    • Cachegröße: Wählen Sie eine Cachegröße aus. Weitere Informationen finden Sie unter Azure Cache for Redis.

    Screenshot der Registerkarte

  4. Wählen Sie die Registerkarte "Netzwerk " aus, oder wählen Sie "Weiter: Netzwerk" aus.

  5. Wählen Sie auf der Registerkarte Netzwerk eine Konnektivitätsmethode für den Cache aus. Privater Endpunkt wird für sicherheit empfohlen. Wenn Sie "Privater Endpunkt" auswählen, wählen Sie "Privaten Endpunkt hinzufügen " aus, und erstellen Sie den privaten Endpunkt.

  6. Wählen Sie die Registerkarte "Erweitert " aus, oder wählen Sie "Weiter: Erweitert" aus.

  7. Konfigurieren Sie im Bereich "Erweitert" die folgenden Optionen:

    • Wählen Sie "Microsoft Entra-Authentifizierung " oder "Zugriffstastenauthentifizierung" aus. Die Microsoft Entra-Authentifizierung ist standardmäßig aktiviert.
    • Wählen Sie aus, ob der Nicht-TLS-Port aktiviert werden soll.
    • Für einen Premium-Cache können Sie Verfügbarkeitszonen konfigurieren oder deaktivieren. Verfügbarkeitszonen können nach der Erstellung des Caches nicht deaktiviert werden. Für einen Standardcache werden Verfügbarkeitszonen automatisch zugewiesen. Verfügbarkeitszonen sind für die Standard-SKU nicht verfügbar.
    • Konfigurieren Sie für einen Premium-Cache die Einstellungen für Replikatanzahl, Clustering und Shardanzahl, vom System zugewiesene verwaltete Identität und Datenpersistenz.

    Die folgende Abbildung zeigt die Registerkarte "Erweitert " für die Standard-SKU.

    Screenshot des Bereichs

    Von Bedeutung

    Verwenden Sie Microsoft Entra ID mit verwalteten Identitäten, um nach Möglichkeit Anfragen für Ihren Cache zu autorisieren. Die Autorisierung mithilfe der Microsoft Entra-ID und der verwalteten Identität bietet eine bessere Sicherheit und ist einfacher zu verwenden als die Autorisierung gemeinsam genutzter Zugriffstasten. Weitere Informationen zum Verwenden verwalteter Identitäten mit Ihren Caches finden Sie unter Verwenden von Microsoft Entra ID für die Cacheauthentifizierung.

  8. Wählen Sie optional die Registerkarte "Kategorien " aus, oder wählen Sie "Weiter: Kategorien" aus, und geben Sie Tagnamen und Werte ein, um Ihre Cacheressourcen zu kategorisieren.

  9. Wählen Sie "Überprüfen" und "Erstellen" aus, und wählen Sie " Erstellen" aus, sobald die Überprüfung bestanden wurde.

Die neue Cachebereitstellung dauert mehrere Minuten. Sie können den Bereitstellungsfortschritt auf der Seite "Azure Cache für Redis" im Portal überwachen. Wenn der Cachestatus"Ausgeführt" angezeigt wird, kann der Cache verwendet werden.

Abrufen von Hostname, Ports und Zugriffsschlüsseln vom Azure-Portal

Um ihren Azure Cache for Redis-Server zu verbinden, benötigt der Cacheclient den Hostnamen, die Ports und einen Schlüssel für den Cache. Von einigen Clients wird unter Umständen mit etwas anderen Namen auf diese Elemente verwiesen. Sie können den Hostnamen, Ports und Zugriffsschlüssel vom Azure-Portal abrufen.

  • Um den Hostnamen und die Ports für den Cache abzurufen, wählen Sie im Menü Ressource die Option Übersicht aus. Der Hostname hat das Format <DNS name>.redis.cache.windows.net.

    Screenshot zeigt die Azure Cache for Redis-Eigenschaften.

  • Wählen Sie zum Abrufen der Zugriffsschlüssel im Menü Ressource die Option Authentifizierung aus. Wählen Sie dann die Registerkarte Zugriffsschlüssel aus.

    Screenshot: Azure Cache for Redis-Zugriffsschlüssel

Einrichten der Arbeitsumgebung

Die folgenden Schritte zeigen, wie Sie die Arbeitsumgebung für die Java-App einrichten. Sie können sich mit Azure Cache for Redis mit Microsoft Entra ID (empfohlen) oder Zugriffsschlüsseln authentifizieren.

export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export REDIS_CACHE_PORT=10000
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export REDIS_CACHE_PORT=6380

Ersetzen Sie die Platzhalter durch die folgenden Werte:

  • <your-host-name>: der DNS-Hostname. Um den Hostnamen und die Ports für den Cache abzurufen, wählen Sie im Menü Ressource die Option Übersicht aus. Der Hostname hat das Format <DNS name>.redis.cache.windows.net.

    Screenshot zeigt die Azure Cache for Redis-Eigenschaften.

  • <user-name> = Objekt-ID Ihrer verwalteten Identität oder Ihres Dienstprinzipals.

    Den Benutzernamen können Sie mit den folgenden Schritten abrufen:

    1. Navigieren Sie im Azure-Portal zu Ihrer Azure Cache for Redis-Instanz.

    2. Wählen Sie im Navigationsbereich Datenzugriffskonfiguration aus.

    3. Gehen Sie auf der Registerkarte Redis-Benutzer zur Spalte Benutzername.

      Screenshot des Azure-Portals mit der Seite „Datenzugriffskonfiguration“ für Azure Cache for Redis und hervorgehobener Registerkarte „Redis-Benutzer“ und einem Wert für „Benutzername“.

Erstellen einer neuen Java-App

  1. Verwenden von Maven zum Generieren einer neuen Schnellstart-App:

    mvn archetype:generate \
        -DarchetypeGroupId=org.apache.maven.archetypes \
        -DarchetypeArtifactId=maven-archetype-quickstart \
        -DarchetypeVersion=1.3 \
        -DinteractiveMode=false \
        -DgroupId=example.demo \
        -DartifactId=redis-redisson-test \
        -Dversion=1.0
    
  2. Wechseln Sie zum neuen Projektverzeichnis redis-redisson-test.

  3. Öffnen Sie die Datei pom.xml und fügen Sie eine Abhängigkeit für Redisson hinzu:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
        <version>1.15.0</version> <!-- {x-version-update;com.azure:azure-identity;dependency} -->
    </dependency>
    
    <dependency>
        <groupId>org.redisson</groupId>
        <artifactId>redisson</artifactId>
        <version>3.36.0</version> <!-- {x-version-update;org.redisson:redisson;external_dependency} -->
    </dependency>
    
  4. Speichern Sie die Datei pom.xml .

  5. Öffnen Sie die Datei App.java, und ersetzen Sie den Code durch folgenden Code:

    package example.demo;
    
    import com.azure.core.credential.TokenRequestContext;
    import com.azure.identity.DefaultAzureCredential;
    import com.azure.identity.DefaultAzureCredentialBuilder;
    import org.redisson.Redisson;
    import org.redisson.api.RedissonClient;
    import org.redisson.config.Config;
    import org.redisson.jcache.configuration.RedissonConfiguration;
    
    import javax.cache.Cache;
    import javax.cache.CacheManager;
    import javax.cache.Caching;
    import javax.cache.configuration.Configuration;
    import javax.cache.configuration.MutableConfiguration;
    import java.time.LocalDateTime;
    
    /**
     * Redis test
     *
     */
    public class App {
        public static void main(String[] args) {
    
            Config redissonconfig = getConfig();
    
            RedissonClient redissonClient = Redisson.create(redissonconfig);
    
            MutableConfiguration<String, String> jcacheConfig = new MutableConfiguration<>();
            Configuration<String, String> config = RedissonConfiguration.fromInstance(redissonClient, jcacheConfig);
    
            // Perform cache operations using JCache
            CacheManager manager = Caching.getCachingProvider().getCacheManager();
            Cache<String, String> map = manager.createCache("test", config);
    
            // Simple get and put of string data into the cache
            System.out.println("\nCache Command  : GET Message");
            System.out.println("Cache Response : " + map.get("Message"));
    
            System.out.println("\nCache Command  : SET Message");
            map.put("Message",
                    String.format("Hello! The cache is working from Java! %s", LocalDateTime.now()));
    
            // Demonstrate "SET Message" executed as expected
            System.out.println("\nCache Command  : GET Message");
            System.out.println("Cache Response : " + map.get("Message"));
    
            redissonClient.shutdown();
    
        }
    
        private static Config getConfig() {
            //Construct a Token Credential from Identity library, e.g. DefaultAzureCredential / ClientSecretCredential / Client    CertificateCredential / ManagedIdentityCredential etc.
            DefaultAzureCredential defaultAzureCredential = new DefaultAzureCredentialBuilder().build();
    
            // Fetch a Microsoft Entra token to be used for authentication.
            String token = defaultAzureCredential
                    .getToken(new TokenRequestContext()
                            .addScopes("https://redis.azure.com/.default")).block().getToken();
    
            // Connect to the Azure Cache for Redis over the TLS/SSL port using the key
            Config redissonconfig = new Config();
            redissonconfig.useSingleServer()
                    .setAddress(String.format("rediss://%s:%s", System.getenv("REDIS_CACHE_HOSTNAME"),  System.getenv("REDIS_CACHE_PORT")))
                    .setUsername(System.getenv("USER_NAME")) // (Required) Username is Object ID of your managed identity or service principal
                    .setPassword(token); // Microsoft Entra access token as password is required.
            return redissonconfig;
        }
    }
    
    
  6. Speichern Sie App.java.

Erstellen und Ausführen der App

Führen Sie den folgenden Maven-Befehl aus, um die App zu erstellen und auszuführen:

mvn compile exec:java -Dexec.mainClass=example.demo.App

In der folgenden Ausgabe können Sie sehen, dass der Schlüssel Message zuvor einen zwischengespeicherten Wert hatte. Die App hat diesen zwischengespeicherten Wert aktualisiert.

Cache Command  : GET Message
Cache Response : Hello! The cache is working from Java! 2023-12-05T15:13:11.398873

Cache Command  : SET Message

Cache Command  : GET Message
Cache Response : Hello! The cache is working from Java! 2023-12-05T15:45:45.748667

Bereinigen von Ressourcen

Falls Sie mit dem nächsten Tutorial fortfahren möchten, können Sie die in dieser Schnellstartanleitung erstellten Ressourcen beibehalten und wiederverwenden.

Wenn Sie die Schnellstart-Beispielanwendung nicht mehr benötigen, können Sie die hier erstellten Azure-Ressourcen löschen, um das Anfallen von Kosten zu vermeiden.

Von Bedeutung

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden also dauerhaft gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen zum Hosten dieses Beispiels in einer vorhandenen Ressourcengruppe erstellt haben, die Ressourcen enthält, die Sie behalten wollen, können Sie jede Ressourcen einzeln löschen, statt die Ressourcengruppe zu löschen.

  1. Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.

  2. Geben Sie im Textfeld Nach Name filtern den Namen Ihrer Ressourcengruppe ein. In diesem Artikel wurde eine Ressourcengruppe mit dem Namen TestResources verwendet. Klicken Sie in der Ergebnisliste in Ihrer Ressourcengruppe auf Ressource testen und dann auf Ressourcengruppe löschen.

    Screenshot des Azure-Portals mit der Seite „Ressourcengruppe“ und hervorgehobener Schaltfläche „Ressourcengruppe löschen“.

  3. Geben Sie den Namen Ihrer Ressourcengruppe ein, um das Löschen zu bestätigen und wählen Sie Löschen aus.

Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.

Nächste Schritte

In dieser Schnellstartanleitung wurde beschrieben, wie Sie Azure Cache for Redis über eine Java-Anwendung mit einem Redisson Redis-Client und JCache verwenden. In der nächsten Schnellstartanleitung erfahren Sie, wie Sie Azure Cache for Redis mit einer ASP.NET-Web-App verwenden.