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 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.
Wählen Sie zum Abrufen der Zugriffsschlüssel im Ressourcenmenü die Option Authentifizierung aus. Wählen Sie dann die Registerkarte Zugriffsschlüssel aus.
Um den Hostnamen und die Ports für den Cache abzurufen, wählen Sie im Ressourcenmenü die Option Übersicht aus. Der Hostname hat das Format <DNS-Name>.redis.cache.windows.net.
Einrichten der Arbeitsumgebung
Die Schritte in diesem Abschnitt zeigen Ihnen zwei Optionen zum Auswählen der Azure-Identität, die für die Redis-Verbindung verwendet wird. Der Beispielcode untersucht den Wert der Umgebungsvariable AUTH_TYPE
und führt abhängig vom Wert Aktionen aus.
Identitätsoption 1: Authentifizierung mit Redis-Schlüssel
Fügen Sie abhängig von Ihrem Betriebssystem Umgebungsvariablen für den Hostnamen Ihres Zwischenspeichers und Ihren primären Zugriffsschlüssel hinzu. Öffnen Sie eine Eingabeaufforderung oder ein Terminalfenster, und richten Sie die folgenden Werte ein:
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_KEY=<your-primary-access-key>
export AUTH_TYPE=RedisKey
Ersetzen Sie die Platzhalter durch die folgenden Werte:
<your-host-name>
: Der DNS-Hostname, den Sie im Abschnitt Eigenschaften Ihrer Azure Cache for Redis-Ressource im Azure-Portal abgerufen haben<your-primary-access-key>
: Der primäre Zugriffsschlüssel, den Sie im Abschnitt Zugriffsschlüssel Ihrer Azure Cache for Redis-Ressource im Azure-Portal abgerufen haben
Identitätsoption 2: Authentifizierung mit Microsoft Entra ID
Fügen Sie abhängig von Ihrem Betriebssystem Umgebungsvariablen für den Hostnamen Ihres Zwischenspeichers und Ihren Benutzernamen hinzu. Öffnen Sie eine Eingabeaufforderung oder ein Terminalfenster, und richten Sie die folgenden Werte ein:
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export AUTH_TYPE=MicrosoftEntraID
Ersetzen Sie die Platzhalter durch die folgenden Werte:
<your-host-name>
: Der DNS-Hostname, den Sie im Abschnitt Eigenschaften Ihrer Azure Cache for Redis-Ressource im Azure-Portal abgerufen haben<user-name>
= Objekt-ID Ihrer verwalteten Identität oder Ihres Dienstprinzipals.
Erstellen einer neuen Java-App
Generieren Sie unter Verwendung von Maven eine neue 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.8.2</version>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.24.3</version>
</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(){
if ("MicrosoftEntraID".equals(System.getenv("AUTH_TYPE"))) {
System.out.println("Auth with Microsoft Entra ID");
return getConfigAuthWithAAD();
} else if ("RedisKey".equals(System.getenv("AUTH_TYPE"))) {
System.out.println("Auth with Redis key");
return getConfigAuthWithKey();
}
System.out.println("Auth with Redis key");
return getConfigAuthWithKey();
}
private static Config getConfigAuthWithKey() {
// Connect to the Azure Cache for Redis over the TLS/SSL port using the key
Config redissonconfig = new Config();
redissonconfig.useSingleServer().setPassword(System.getenv("REDIS_CACHE_KEY"))
.setAddress(String.format("rediss://%s:6380", System.getenv("REDIS_CACHE_HOSTNAME")));
return redissonconfig;
}
private static Config getConfigAuthWithAAD() {
//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("acca5fbb-b7e4-4009-81f1-37e38fd66d78/.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:6380", System.getenv("REDIS_CACHE_HOSTNAME")))
.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;
}
}
Dieser Code zeigt Ihnen, wie Sie mithilfe von Microsoft Entra ID und der JCache-API aus der Redisson-Clientbibliothek eine Verbindung mit einer Azure Cache for Redis-Instanz herstellen. Der Code speichert auch einen Zeichenfolgenwert im Cache und ruft ihn ab. Weitere Informationen zu JCache finden Sie in der JCache-Spezifikation.
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:
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.