Quickstart: Azure Cache voor Redis gebruiken met een Java-app en een Redisson Redis-client
In deze quickstart neemt u Azure Cache voor Redis op in een Java-app met behulp van de Redisson Redis-client en de JCP-standaard-JCache-API (Java Community Practice). Deze services bieden u toegang tot een beveiligde, toegewezen cache die toegankelijk is vanuit elke toepassing in Azure.
In dit artikel worden twee opties beschreven voor het selecteren van de Azure-identiteit die moet worden gebruikt voor de Redis-verbinding:
- Verificatie met behulp van een Redis-sleutel
- Verificatie met behulp van Microsoft Entra-id
Ga naar de code
In deze quickstart wordt de Maven-archetypefunctie gebruikt om scaffolding te genereren voor een Java-app. In de quickstart wordt beschreven hoe u de code configureert om een werkende app te maken die verbinding maakt met Azure Cache voor Redis.
Als u rechtstreeks naar de code wilt gaan, raadpleegt u het Java-quickstartvoorbeeld op GitHub.
Vereisten
- Een Azure-abonnement. Maak er gratis een
- Microsoft Entra-id voor cacheverificatie
- Apache Maven
Een cache maken
Meld u aan bij Azure Portal om een cache te maken. Selecteer een resource maken in het portalmenu.
Voer in het deelvenster Aan de slag Azure Cache voor Redis in de zoekbalk in. Zoek Azure Cache voor Redis in de zoekresultaten en selecteer Vervolgens Maken.
Configureer in het deelvenster Nieuwe Redis Cache op het tabblad Basis de volgende instellingen voor uw cache:
Instelling Actie Beschrijving Abonnement Selecteer uw Azure-abonnement. Het abonnement dat moet worden gebruikt om het nieuwe exemplaar van Azure Cache voor Redis te maken. Resourcegroep Selecteer een resourcegroep of selecteer Nieuwe maken en voer een nieuwe resourcegroepnaam in. Een naam voor de resourcegroep waarin u uw cache en andere resources wilt maken. Door al uw app-resources in één resourcegroep te plaatsen, kunt u ze eenvoudig beheren of verwijderen. DNS-naam Voer een unieke naam in. De cachenaam moet een tekenreeks van 1 tot 63 tekens zijn die alleen cijfers, letters en afbreekstreepjes bevat. De naam moet beginnen en eindigen met een getal of letter en mag geen opeenvolgende afbreekstreepjes bevatten. De hostnaam van uw cache-exemplaar is \<DNS name>.redis.cache.windows.net
.Location Selecteer een locatie. Een Azure-regio in de buurt van andere services die gebruikmaken van uw cache. Cache-SKU Selecteer een SKU. De SKU bepaalt de grootte, prestaties en functieparameters die beschikbaar zijn voor de cache. Zie Azure Cache voor Redis overzicht voor meer informatie. Cachegrootte Selecteer een cachegrootte. Zie Azure Cache voor Redis overzicht voor meer informatie. Selecteer het tabblad Netwerken of selecteer Volgende: Netwerken.
Selecteer op het tabblad Netwerken een connectiviteitsmethode die u voor de cache wilt gebruiken.
Selecteer het tabblad Geavanceerd of selecteer Volgende: Geavanceerd.
Controleer of selecteer in het deelvenster Geavanceerd een verificatiemethode op basis van de volgende informatie:
- Microsoft Entra Authentication is standaard ingeschakeld voor een nieuwe Basic-, Standard- of Premium-cache en toegangssleutelsverificatie is uitgeschakeld.
- Voor Basic- of Standard-caches kunt u de selectie voor een niet-TLS-poort kiezen.
- Voor Standard- en Premium-caches kunt u ervoor kiezen om beschikbaarheidszones in te schakelen. U kunt beschikbaarheidszones niet uitschakelen nadat de cache is gemaakt.
- Voor een Premium-cache configureert u de instellingen voor niet-TLS-poort, clustering, beheerde identiteit en gegevenspersistentie.
Belangrijk
Voor optimale beveiliging wordt u aangeraden Microsoft Entra ID met beheerde identiteiten te gebruiken om aanvragen tegen uw cache te autoriseren, indien mogelijk. Autorisatie met behulp van Microsoft Entra ID en beheerde identiteiten biedt superieure beveiliging en gebruiksgemak ten opzichte van autorisatie van gedeelde toegangssleutels. Zie Microsoft Entra ID gebruiken voor cacheverificatie voor meer informatie over het gebruik van beheerde identiteiten met uw cache.
(Optioneel) Selecteer het tabblad Tags of selecteer Volgende: Tags.
(Optioneel) Voer op het tabblad Tags een tagnaam en -waarde in als u de cacheresource wilt categoriseren.
Selecteer de knop Controleren en maken.
Op het tabblad Controleren en maken valideert Azure uw configuratie automatisch.
Nadat het groene bericht Validatie is geslaagd , selecteert u Maken.
Een nieuwe cache-implementatie vindt meer dan enkele minuten plaats. U kunt de voortgang van de implementatie controleren in het deelvenster Azure Cache voor Redis Overzicht. Wanneer de status Wordt uitgevoerd, is de cache gereed voor gebruik.
De hostnaam, poorten en toegangssleutel ophalen
Om verbinding te maken met uw Azure Cache voor Redis-server, heeft de cacheclient de hostnaam, poorten en een toegangssleutel van de cache nodig. Sommige clients kunnen naar deze items verwijzen door iets andere namen te gebruiken. U kunt de hostnaam, poorten en sleutels ophalen in Azure Portal.
Ga als volgende te werk om een toegangssleutel voor uw cache op te halen:
- Ga in Azure Portal naar uw cache.
- Selecteer Verificatie in het servicemenu onder Instellingen.
- Selecteer in het deelvenster Verificatie het tabblad Toegangssleutels .
- Als u de waarde voor een toegangssleutel wilt kopiëren, selecteert u het pictogram Kopiëren in het sleutelveld.
Ga als volgende te werk om de hostnaam en poorten voor uw cache op te halen:
- Ga in Azure Portal naar uw cache.
- Selecteer Overzicht in het servicemenu.
- Selecteer onder Essentials voor Hostnaam het pictogram Kopiëren om de waarde van de hostnaam te kopiëren. De waarde van de hostnaam heeft het formulier
<DNS name>.redis.cache.windows.net
. - Selecteer voor Poorten het pictogram Kopiëren om de poortwaarden te kopiëren.
De werkomgeving instellen
In de stappen in deze sectie ziet u twee opties voor het selecteren van een Azure-identiteit die moet worden gebruikt voor de Redis-verbinding. De voorbeeldcode kijkt naar de waarde van de AUTH_TYPE
omgevingsvariabele en neemt vervolgens actie op basis van de waarde.
Verifiëren met behulp van een Redis-sleutel
Afhankelijk van uw besturingssysteem voegt u omgevingsvariabelen toe om de hostnaam en primaire toegangssleutel van uw cache op te slaan. Stel in een opdrachtpromptvenster of terminalvenster de volgende waarden in:
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_KEY=<your-primary-access-key>
export AUTH_TYPE=RedisKey
Vervang in de voorgaande code de tijdelijke aanduidingen door de volgende waarden:
<your-host-name>
: De DNS-hostnaam, verkregen uit de sectie Eigenschappen van uw Azure Cache voor Redis-resource in Azure Portal.<your-primary-access-key>
: De primaire toegangssleutel, verkregen uit de sectie Toegangssleutels van uw Azure Cache voor Redis-resource in Azure Portal.
Verifiëren met behulp van Microsoft Entra-id
Afhankelijk van uw besturingssysteem voegt u omgevingsvariabelen toe om de hostnaam en gebruikersnaam van uw cache op te slaan. Stel in een opdrachtpromptvenster of terminalvenster de volgende waarden in:
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export AUTH_TYPE=MicrosoftEntraID
Vervang in de voorgaande code de tijdelijke aanduidingen door de volgende waarden:
<your-host-name>
: De DNS-hostnaam, verkregen uit de sectie Eigenschappen van uw Azure Cache voor Redis-resource in Azure Portal.<user-name>
: de object-id van uw beheerde identiteit of service-principal.Ga als volgende te werk om de gebruikersnaam op te halen:
Een nieuwe Java-app maken
Genereer een nieuwe quickstart-app met behulp van Maven:
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
Ga naar de nieuwe projectmap redis-redisson-test .
Open het pom.xml-bestand en voeg een afhankelijkheid toe voor Redisson:
<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>
Sla het bestand pom.xml op.
Open App.java en vervang de bestaande code door de volgende 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;
}
}
Deze code laat zien hoe u verbinding maakt met een Azure Cache voor Redis exemplaar met behulp van Microsoft Entra-id met de JCache-API-ondersteuning van de Redisson-clientbibliotheek. Met de code wordt ook een tekenreekswaarde opgeslagen in de cache en daaruit opgehaald. Zie de JCache-specificatie voor meer informatie.
Sla App.java op.
Ontwikkel de app en voer deze uit
Voer de volgende Maven-opdracht uit om de app te bouwen en uit te voeren:
In de volgende uitvoer ziet u dat de sleutel eerder een waarde in de Message
cache had die in de laatste uitvoering is ingesteld. De app heeft die waarde in de cache bijgewerkt.
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
Resources opschonen
Als u de resources wilt blijven gebruiken die u in dit artikel hebt gemaakt, moet u de resourcegroep behouden.
Als u de resources niet meer wilt gebruiken, kunt u de Azure-resourcegroep verwijderen die u hebt gemaakt, als u klaar bent met het gebruik van de resources.
Waarschuwing
Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. Wanneer u een resourcegroep verwijdert, worden alle resources in de resourcegroep definitief verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert. Als u de resources in een bestaande resourcegroep hebt gemaakt die resources bevat die u wilt behouden, kunt u elke resource afzonderlijk verwijderen in plaats van de resourcegroep te verwijderen.
Een resourcegroep verwijderen
Meld u aan bij Azure Portal en selecteer vervolgens Resourcegroepen.
Selecteer de resourcegroep die u wilt verwijderen.
Als er veel resourcegroepen zijn, voert u in Filter voor een veld de naam in van de resourcegroep die u hebt gemaakt om dit artikel te voltooien. Selecteer de resourcegroep in de lijst met zoekresultaten.
Selecteer Resourcegroep verwijderen.
Voer in het deelvenster Een resourcegroep verwijderen de naam van de resourcegroep in die u wilt bevestigen en selecteer Vervolgens Verwijderen.
Binnen enkele ogenblikpen worden de resourcegroep en alle bijbehorende resources verwijderd.