Rychlý start: Použití služby Azure Cache for Redis v Javě s klientem Redisson Redis
V tomto rychlém startu zahrnete Azure Cache for Redis do aplikace v Javě pomocí klienta Redisson Redis a standardního rozhraní JCache API JCP. Tyto služby poskytují přístup k zabezpečené vyhrazené mezipaměti, která je přístupná z jakékoli aplikace v Rámci Azure. Tento článek obsahuje dvě možnosti pro výběr identity Azure, která se má použít pro připojení Redis.
Přeskočit na kód na GitHubu
V tomto rychlém startu se k vygenerování generování uživatelského rozhraní pro aplikaci používá funkce archetypu Maven. Rychlý start vás nasměruje na úpravu vygenerovaného kódu tak, aby došel do funkční ukázkové aplikace. Pokud chcete přeskočit přímo na dokončený kód, přečtěte si rychlý start Java na GitHubu.
Požadavky
- Předplatné Azure – vytvoření bezplatného předplatného
- Použití ID Microsoft Entra pro ověřování mezipaměti
- Apache Maven
Vytvoření instance Azure Cache for Redis
Pokud chcete vytvořit mezipaměť, přihlaste se k webu Azure Portal a vyberte Vytvořit prostředek.
Na stránce Začínáme zadejte do vyhledávacího pole Azure Cache for Redis. Potom vyberte Vytvořit.
Na stránce Nová mezipaměť Redis nakonfigurujte nastavení vaší mezipaměti.
Nastavení Zvolit hodnotu Popis Předplatné Rozevírací seznam a vyberte své předplatné. Předplatné, ve kterém se má tato nová instance Azure Cache for Redis vytvořit. Skupina prostředků Rozevírací seznam a vyberte skupinu prostředků nebo vyberte Vytvořit novou a zadejte nový název skupiny prostředků. Název skupiny prostředků, ve které chcete vytvořit mezipaměť a další prostředky. Když umístíte všechny prostředky aplikace do jedné skupiny prostředků, můžete je snadno spravovat nebo odstraňovat společně. Název DNS Zadejte jedinečný název. Název mezipaměti musí být řetězec mezi 1 a 63 znaky, který obsahuje pouze číslice, písmena nebo pomlčky. Název musí začínat a končit číslicí nebo písmenem a nesmí obsahovat po sobě jdoucí pomlčky. Název hostitele vaší instance mezipaměti je< NÁZEV> DNS.redis.cache.windows.net. Místo Rozevírací seznam a výběr umístění Vyberte oblast poblíž jiných služeb, které používají vaši mezipaměť. Skladová položka mezipaměti Rozevírací seznam a výběr skladové položky Skladová položka určuje parametry velikosti, výkonu a funkcí, které jsou k dispozici pro mezipaměť. Další informace najdete v tématu Přehled služby Azure Cache for Redis. Velikost mezipaměti Rozevírací seznam a výběr velikosti mezipaměti Další informace najdete v tématu Přehled služby Azure Cache for Redis. Vyberte kartu Sítě nebo vyberte tlačítko Sítě v dolní části stránky.
Na kartě Sítě vyberte metodu připojení.
Vyberte kartu Další: Upřesnit nebo vyberte tlačítko Další: Upřesnit v dolní části stránky a zobrazte kartu Upřesnit.
- U mezipamětí Basic nebo Standard přepněte výběr pro port, který není tls. Můžete také vybrat, jestli chcete povolit ověřování Microsoft Entra.
- Pro mezipaměť Premium nakonfigurujte nastavení pro port bez protokolu TLS, clustering, spravovanou identitu a trvalost dat. Můžete také vybrat, jestli chcete povolit ověřování Microsoft Entra.
Vyberte kartu Další: Značky nebo vyberte tlačítko Další: Značky v dolní části stránky.
Volitelně můžete na kartě Značky zadat název a hodnotu, pokud chcete prostředek zařadit do kategorií.
Vyberte Zkontrolovat a vytvořit. Přejdete na kartu Zkontrolovat a vytvořit, kde Azure ověří vaši konfiguraci.
Jakmile se zobrazí zelená zpráva o úspěšném ověření, vyberte Vytvořit.
Vytvoření mezipaměti chvíli trvá. Průběh můžete sledovat na stránce Přehled služby Azure Cache for Redis. Když se stav zobrazí jako Spuštěno, je mezipaměť připravená k použití.
Načtení názvu hostitele, portů a přístupových klíčů z webu Azure Portal
K připojení serveru Azure Cache for Redis potřebuje klient mezipaměti název hostitele, porty a klíč pro mezipaměť. Někteří klienti mohou tyto položky označovat trochu odlišnými názvy. Název hostitele, porty a klíče můžete získat z webu Azure Portal.
Přístupové klíče získáte tak, že v nabídce Prostředek vyberete Možnost Ověřování . Pak vyberte kartu Přístupové klávesy .
Pokud chcete získat název hostitele a porty pro vaši mezipaměť, vyberte v nabídce Prostředek přehled . Název hostitele je ve formátu DNS name.redis.cache.windows.net>.<
Nastavení pracovního prostředí
Kroky v této části ukazují dvě možnosti, jak vybrat identitu Azure použitou pro připojení Redis. Ukázkový kód se podívá na hodnotu AUTH_TYPE
proměnné prostředí a provede akci v závislosti na hodnotě.
Možnost 1: Ověřování pomocí klíče Redis
V závislosti na operačním systému přidejte proměnné prostředí pro název hostitele mezipaměti a primární přístupový klíč. Otevřete příkazový řádek nebo okno terminálu a nastavte následující hodnoty:
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_KEY=<your-primary-access-key>
export AUTH_TYPE=RedisKey
Zástupné symboly nahraďte následujícími hodnotami:
<your-host-name>
: Název hostitele DNS získaný z části Vlastnosti prostředku Azure Cache for Redis na webu Azure Portal.<your-primary-access-key>
: Primární přístupový klíč získaný z části Přístupové klíče prostředku Azure Cache for Redis na webu Azure Portal.
Možnost identity 2: Ověřování s ID Microsoft Entra
V závislosti na operačním systému přidejte proměnné prostředí pro název hostitele a uživatelské jméno mezipaměti. Otevřete příkazový řádek nebo okno terminálu a nastavte následující hodnoty:
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export AUTH_TYPE=MicrosoftEntraID
Zástupné symboly nahraďte následujícími hodnotami:
<your-host-name>
: Název hostitele DNS získaný z části Vlastnosti prostředku Azure Cache for Redis na webu Azure Portal.<user-name>
: ID objektu vaší spravované identity nebo instančního objektu.
Vytvoření nové aplikace Java
Pomocí Mavenu vygenerujte novou aplikaci rychlého startu:
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
Přejděte do nového adresáře projektu redis-redisson-test .
Otevřete soubor pom.xml a přidejte závislost pro 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>
Uložte soubor pom.xml.
Otevřete App.java a kód nahraďte následujícím kódem:
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;
}
}
Tento kód ukazuje, jak se připojit k instanci Azure Cache for Redis pomocí ID Microsoft Entra s podporou rozhraní JCache API z klientské knihovny Redisson. Kód také ukládá a načítá hodnotu řetězce v mezipaměti. Další informace o JCache naleznete ve specifikaci JCache.
Uložte App.java.
Sestavte a spusťte aplikaci.
Spusťte následující příkaz Maven k sestavení a spuštění aplikace:
V následujícím výstupu vidíte, že Message
klíč dříve měl hodnotu uloženou v mezipaměti, která byla nastavena při posledním spuštění. Aplikace tuto hodnotu z mezipaměti aktualizovala.
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
Vyčištění prostředků
Pokud plánujete pokračovat v dalším kurzu, můžete zachovat prostředky vytvořené v tomto rychlém startu a znovu je použít.
Jinak pokud jste dokončili ukázkovou aplikaci pro rychlý start, můžete odstranit prostředky Azure vytvořené v tomto rychlém startu, abyste se vyhnuli poplatkům.
Důležité
Odstranění skupiny prostředků je nevratné a skupina prostředků včetně všech v ní obsažených prostředků bude trvale odstraněna. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro hostování této ukázky v existující skupině prostředků obsahující prostředky, které chcete zachovat, můžete každý prostředek odstranit jednotlivě místo odstranění skupiny prostředků.
Přihlaste se k webu Azure Portal a potom vyberte Skupiny prostředků.
Do textového pole Filtrovat podle názvu zadejte název vaší skupiny prostředků. Pokyny pro tento článek použily skupinu prostředků s názvem
TestResources
. V seznamu výsledků ve skupině prostředků vyberte Testovací prostředky a pak odstraňte skupinu prostředků.Zadejte název skupiny prostředků, abyste potvrdili odstranění, a pak vyberte Odstranit.
Po chvíli bude skupina prostředků včetně všech obsažených prostředků odstraněná.
Další kroky
V tomto rychlém startu jste zjistili, jak používat Azure Cache for Redis z aplikace v Javě s klientem Redisson Redis a JCache. Pokračujte k dalšímu rychlému startu a použijte Azure Cache for Redis s ASP.NET webovou aplikací.