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

Vytvoření instance Azure Cache for Redis

  1. Pokud chcete vytvořit mezipaměť, přihlaste se k webu Azure Portal a vyberte Vytvořit prostředek.

    V levém navigačním podokně je zvýrazněný prostředek.

  2. Na stránce Začínáme zadejte do vyhledávacího pole Azure Cache for Redis. Potom vyberte Vytvořit.

    Snímek obrazovky Azure Marketplace se službou Azure Cache for Redis ve vyhledávacím poli a zvýrazněným červeným polem pro vytvoření

  3. 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.
  4. Vyberte kartu Sítě nebo vyberte tlačítko Sítě v dolní části stránky.

  5. Na kartě Sítě vyberte metodu připojení.

  6. Vyberte kartu Další: Upřesnit nebo vyberte tlačítko Další: Upřesnit v dolní části stránky a zobrazte kartu Upřesnit.

    Snímek obrazovky s kartou Upřesnit v pracovním podokně a dostupnou možností, která se má vybrat

    • 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.
  7. Vyberte kartu Další: Značky nebo vyberte tlačítko Další: Značky v dolní části stránky.

  8. Volitelně můžete na kartě Značky zadat název a hodnotu, pokud chcete prostředek zařadit do kategorií.

  9. Vyberte Zkontrolovat a vytvořit. Přejdete na kartu Zkontrolovat a vytvořit, kde Azure ověří vaši konfiguraci.

  10. 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 .

    Klíče Azure Cache for Redis

  • 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>.<

    Vlastnosti Azure Cache for Redis

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.
    • Uživatelské jméno můžete získat pomocí následujícího postupu:

      1. Na webu Azure Portal přejděte k vaší instanci Azure Cache for Redis.

      2. V navigačním podokně vyberte Konfigurace přístupu k datům.

      3. Na kartě Uživatelé Redis vyhledejte sloupec Uživatelské jméno.

        Snímek obrazovky webu Azure Portal znázorňující stránku Konfigurace přístupu k datům Azure Cache for Redis se zvýrazněnou kartou Uživatelé Redis a zvýrazněnou hodnotou Uživatelského jména

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:

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

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ů.

  1. Přihlaste se k webu Azure Portal a potom vyberte Skupiny prostředků.

  2. 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ů.

    Snímek obrazovky webu Azure Portal se stránkou Skupina prostředků se zvýrazněným tlačítkem Odstranit skupinu prostředků

  3. 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í.