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
- Azure-Abonnement – Erstellen eines kostenlosen Kontos
- Verwenden von Microsoft Entra ID für die Cacheauthentifizierung
- Apache Maven
Erstellen einer Azure Managed Redis-Instanz (Vorschau)
Melden Sie sich zum Erstellen einer Azure Managed Redis-Instanz (Vorschau) beim Azure-Portal an, und wählen Sie Ressource erstellen aus.
Geben Sie auf der Seite Neu im Suchfeld Azure Cache for Redis ein.
Konfigurieren Sie auf der Seite Neuer Redis Cache die Einstellungen für den neuen Cache.
Einstellung 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. DNS-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
.Location Öffnen Sie die Dropdownliste, und wählen Sie einen Standort aus. Azure Managed Redis ist in ausgewählten Azure-Regionen verfügbar. Cachetyp Wählen Sie in der Dropdownliste die Leistungsstufe und die Cachegröße aus. Die Stufe bestimmt die Leistung der Redis-Instanz, während die Cachegröße den zur Datenspeicherung verfügbaren Arbeitsspeicher bestimmt. Einen Leitfaden zum Auswählen der richtigen Leistungsstufe finden Sie unter Auswählen der richtigen Dienstebene. Wählen Sie Weiter: Netzwerk aus, um einen öffentlichen oder privaten Endpunkt auszuwählen.
Klicken Sie auf Weiter: Erweitert.
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.
Wichtig
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.
Legen Sie Clusteringrichtlinie auf Enterprise für einen nicht gruppierten Cache fest oder OSS für einen gruppierten Cache. Weitere Informationen zum Auswählen einer Clusterrichtlinie finden Sie unter Clusterrichtlinie.
Bei Verwendung der aktiven Georeplikation muss diese während der Erstellung konfiguriert werden. Weitere Informationen finden Sie unter Konfigurieren der aktiven Georeplikation für Azure Managed Redis-Instanzen.
Wichtig
Sie können die Clusterrichtlinie einer Azure Managed Redis-Instanz (Vorschau) nach der Erstellung nicht mehr ändern. Wenn Sie RediSearch verwenden, ist die Enterprise-Clusterrichtlinie erforderlich, und
NoEviction
wird die einzige Entfernungsrichtlinie unterstützt.Wichtig
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.
Wichtig
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.
Wählen Sie Weiter: Tags aus, und überspringen Sie den Schritt.
Klicken Sie auf Weiter: Überprüfen + erstellen.
Ü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
Um einen Cache zu erstellen, melden Sie sich im Azure-Portal an. Klicken Sie im Menü des Portals auf Ressource erstellen.
Geben Sie auf der Seite Erste Schritte den Begriff Azure Cache for Redis in das Suchfeld ein. Suchen Sie in den Suchergebnissen nach Azure Cache for Redis, und wählen Sie dann Erstellen aus.
Konfigurieren Sie im Bereich Neuer Redis-Cache auf der Registerkarte Grundlagen die folgenden Einstellungen für Ihren Cache:
Einstellung Aktion Beschreibung Abonnement Wählen Sie Ihr Azure-Abonnement. Das Abonnement, das zum Erstellen der neuen Instanz von Azure Cache for Redis verwendet werden soll. Ressourcengruppe 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. DNS-Name Geben Sie einen eindeutigen Namen ein. Der Cachename muss eine Zeichenfolge mit 1 bis 63 Zeichen sein, die nur Zahlen, Buchstaben und Bindestriche enthält. 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>.redis.cache.windows.net
.Location Wählen Sie einen Standort aus. Eine Azure-Region, die sich in der Nähe anderer Dienste befindet, die Ihren Cache verwenden. Cache-SKU Wählen Sie eine SKU aus. Die SKU bestimmt die Parameter für Größe, Leistung und Features, die für den Cache verfügbar sind. Weitere Informationen finden Sie unter Azure Cache for Redis. Cachegröße Wählen Sie eine Cachegröße aus. Weitere Informationen finden Sie unter Azure Cache for Redis. Wählen Sie die Registerkarte Netzwerk, oder wählen Sie Weiter: Netzwerk.
Wählen Sie auf der Registerkarte Netzwerk eine Konnektivitätsmethode für den Cache aus.
Wählen Sie die Registerkarte Erweitert aus, oder wählen Sie Weiter: Erweitert aus.
Überprüfen oder wählen Sie im Bereich Erweitert basierend auf den folgenden Informationen eine Authentifizierungsmethode aus:
- Standardmäßig ist für einen neuen Basic-, Standard- oder Premium-Cache die Microsoft Entra-Authentifizierung aktiviert und die Authentifizierung mit Zugriffsschlüsseln deaktiviert.
- Für Basic- oder Standard-Caches können Sie sich für die Auswahl eines Nicht-TLS-Ports entscheiden.
- Für Standard- und Premium-Caches können Sie Verfügbarkeitszonen aktivieren. Verfügbarkeitszonen können nach der Erstellung des Caches nicht deaktiviert werden.
- Konfigurieren Sie für ein Premium-Cache die Einstellungen für einen Nicht-TLS-Port, das Clustering, die verwaltete Identität und die Datenpersistenz.
Wichtig
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.
(Optional) Wählen Sie die Registerkarte Tags aus, oder wählen Sie Weiter: Tags aus.
Geben Sie optional auf der Registerkarte Tags den Namen und den Wert ein, wenn Sie die Cacheressource kategorisieren möchten.
Wählen Sie die Schaltfläche Überprüfen + erstellen aus.
Auf der Registerkarte Überprüfen und Erstellen überprüft Azure automatisch Ihre Konfiguration.
Wenn die grüne Meldung Validierung erfolgreich angezeigt wird, wählen Sie Erstellen aus.
Eine neue Cachebereitstellung dauert mehrere Minuten. Sie können den Fortschritt der Bereitstellung im Azure Cache for Redis -Übersichtsbereich überwachen. Wenn der Status Wird ausgeführt anzeigt, 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
.Wählen Sie zum Abrufen der Zugriffsschlüssel im Menü Ressource die Option Authentifizierung aus. Wählen Sie dann die Registerkarte Zugriffsschlüssel aus.
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
.<user-name>
= Objekt-ID Ihrer verwalteten Identität oder Ihres Dienstprinzipals.Den Benutzernamen können Sie mit den folgenden Schritten abrufen:
Erstellen einer neuen Java-App
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
Wechseln Sie zum neuen Projektverzeichnis redis-redisson-test.
Ö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>
Speichern Sie die Datei pom.xml .
Ö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; } }
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.
Wichtig
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.
Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
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.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.