Share via


Rövid útmutató: Az Azure Cache for Redis használata Java-ban Redisson Redis-ügyféllel

Ebben a rövid útmutatóban az Azure Cache for Redist egy Java-alkalmazásba építi be a Redisson Redis-ügyfél és a JCP standard JCache API használatával. Ezek a szolgáltatások hozzáférést biztosítanak egy biztonságos, dedikált gyorsítótárhoz, amely az Azure bármely alkalmazásából elérhető. Ez a cikk két lehetőséget biztosít a Redis-kapcsolathoz használni kívánt Azure-identitás kiválasztásához.

Ugrás a GitHubon található kódra

Ez a rövid útmutató a Maven archetype funkciójával hozza létre az alkalmazás állványzatát. A rövid útmutató arra utasítja, hogy módosítsa a létrehozott kódot, hogy a működő mintaalkalmazáshoz érkezzen. Ha közvetlenül a kész kódra szeretne átugorni, tekintse meg a GitHub java-gyorsútmutatóját .

Előfeltételek

Az Azure Cache for Redis létrehozása

  1. Gyorsítótár létrehozásához jelentkezzen be az Azure Portalra, és válassza az Erőforrás létrehozása lehetőséget.

    Az erőforrás létrehozása ki van emelve a bal oldali navigációs panelen.

  2. Az Első lépések lapon írja be az Azure Cache for Redis kifejezést a keresőmezőbe. Ezután kattintson a Létrehozás elemre.

    Képernyőkép az Azure Marketplace-ről, amelyen az Azure Cache for Redis szerepel a keresőmezőben, és a létrehozás piros mezővel van kiemelve.

  3. Az Új Redis Cache lapon konfigurálja a gyorsítótár beállításait.

    Beállítás Válasszon egy értéket Leírás
    Előfizetés Legördülő menüben válassza ki az előfizetését. Az előfizetés, amely alatt létre kell hozni ezt az új Azure Cache for Redis-példányt.
    Erőforráscsoport Legördülő menüben jelöljön ki egy erőforráscsoportot, vagy válassza az Új létrehozása lehetőséget, és adjon meg egy új erőforráscsoportnevet. Annak az erőforráscsoportnak a neve, amelyben létre kívánja hozni a gyorsítótárat és más erőforrásokat. Ha az összes alkalmazás-erőforrást egy erőforráscsoportba helyezi, egyszerűen kezelheti vagy törölheti őket.
    DNS-név Adjon meg egy egyedi nevet. A gyorsítótár nevének 1 és 63 karakter közötti sztringnek kell lennie, amely csak számokat, betűket vagy kötőjeleket tartalmaz. A névnek számmal vagy betűvel kell kezdődnie és végződnie, és nem tartalmazhat egymást követő kötőjeleket. A gyorsítótárpéldány állomásneve< DNS name.redis.cache.windows.net.>
    Helyen Legördülő menüben válasszon ki egy helyet. Válasszon ki egy régiót a gyorsítótárat használó más szolgáltatások közelében.
    Gyorsítótár termékváltozata Legördülő menüben válasszon ki egy termékváltozatot. Az termékváltozat határozza meg a gyorsítótár számára elérhető méretet, teljesítményt és szolgáltatások paramétereit. További információt az Azure Cache for Redis áttekintésében talál.
    Gyorsítótár mérete Legördülő menü és a gyorsítótár méretének kiválasztása További információt az Azure Cache for Redis áttekintésében talál.
  4. Válassza a Hálózat lapfület , vagy válassza a Lap alján található Hálózatkezelés gombot.

  5. A Hálózatkezelés lapon válassza ki a kapcsolati módszert.

  6. Válassza a Tovább: Speciális lapot, vagy a Lap alján található Tovább: Speciális gombot a Speciális lap megjelenítéséhez.

    Képernyőkép a munkaablak Speciális lapról és a választható lehetőségről.

    • Alapszintű vagy standard gyorsítótárak esetén állítsa be a nem TLS-portok kijelölését. Kiválaszthatja azt is, hogy engedélyezni szeretné-e a Microsoft Entra-hitelesítést.
    • Prémium szintű gyorsítótár esetén konfigurálja a nem TLS-port, a fürtözés, a felügyelt identitás és az adatmegőrzés beállításait. Kiválaszthatja azt is, hogy engedélyezni szeretné-e a Microsoft Entra-hitelesítést.
  7. Válassza a Tovább: Címkék lapot, vagy válassza a Következő: Címkék gombot a lap alján.

  8. Ha kategorizálni szeretné az erőforrást, a Címkék lapon adja meg a nevet és az értéket.

  9. Válassza az Áttekintés + létrehozás lehetőséget. Ekkor megjelenik a Véleményezés + létrehozás lap, ahol az Azure ellenőrzi a konfigurációt.

  10. A zöld érvényesítési üzenet megjelenése után válassza a Létrehozás lehetőséget.

A gyorsítótár létrehozása eltarthat egy ideig. Az előrehaladást az Azure Cache for Redis áttekintési oldalán követheti nyomon. Ha az állapot futásként jelenik meg, a gyorsítótár készen áll a használatra.

Állomásnév, portok és hozzáférési kulcsok lekérése az Azure Portalról

Az Azure Cache for Redis-kiszolgáló csatlakoztatásához a gyorsítótár-ügyfélnek szüksége van a gazdagép nevére, portjára és kulcsára a gyorsítótárhoz. Egyes ügyfelek különböző neveken hivatkozhatnak ezekre az elemekre. A gazdagép nevét, portját és kulcsait az Azure Portalról szerezheti be.

  • A hozzáférési kulcsok lekéréséhez válassza az Erőforrás menü Hitelesítés elemét. Ezután válassza az Access-kulcsok lapot.

    Azure Cache for Redis-kulcsok

  • A gyorsítótár gazdagépnevének és portjának lekéréséhez válassza az Erőforrás menü Áttekintés elemét . A gazdagép neve a DNS name.redis.cache.windows.net> formátumú<.

    Az Azure Cache for Redis tulajdonságai

A munkakörnyezet beállítása

Az ebben a szakaszban ismertetett lépések két lehetőséget mutatnak be a Redis-kapcsolathoz használt Azure-identitás kiválasztásához. A mintakód megvizsgálja a környezeti változó értékét AUTH_TYPE , és az értéktől függően végrehajtja a műveletet.

Identitás 1. lehetőség: Hitelesítés Redis-kulccsal

Az operációs rendszertől függően adjon hozzá környezeti változókat a gyorsítótár gazdagépnevének és elsődleges hozzáférési kulcsának. Nyisson meg egy parancssort vagy egy terminálablakot, és állítsa be a következő értékeket:

export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_KEY=<your-primary-access-key>
export AUTH_TYPE=RedisKey

Cserélje le a helyőrzőket a következő értékekre:

  • <your-host-name>: Az Azure Cache for Redis-erőforrás Tulajdonságok szakaszából beszerzett DNS-gazdagép neve az Azure Portalon.
  • <your-primary-access-key>: Az Azure Cache for Redis-erőforrás Hozzáférési kulcsok szakaszából beszerzett elsődleges hozzáférési kulcs az Azure Portalon.

Identitás 2. lehetőség: Hitelesítés a Microsoft Entra-azonosítóval

Az operációs rendszertől függően adjon hozzá környezeti változókat a gyorsítótár gazdagépének nevéhez és felhasználónévéhez. Nyisson meg egy parancssort vagy egy terminálablakot, és állítsa be a következő értékeket:

export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export AUTH_TYPE=MicrosoftEntraID

Cserélje le a helyőrzőket a következő értékekre:

  • <your-host-name>: Az Azure Cache for Redis-erőforrás Tulajdonságok szakaszából beszerzett DNS-gazdagép neve az Azure Portalon.
  • <user-name>: A felügyelt identitás vagy szolgáltatásnév objektumazonosítója.
    • A felhasználónevet az alábbi lépésekkel szerezheti be:

      1. Az Azure Portalon keresse meg az Azure Cache for Redis-példányt.

      2. A navigációs panelen válassza az Adatelérési konfiguráció lehetőséget.

      3. A Redis Users lapon keresse meg a Felhasználónév oszlopot.

        Képernyőkép az Azure Portalról, amelyen az Azure Cache for Redis adathozzáférési konfigurációs lapja látható, amelyen a Redis Users lap és a Felhasználónév érték van kiemelve.

Új Java-alkalmazás létrehozása

A Maven használatával hozzon létre egy új gyorsindító alkalmazást:

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

Váltson az új redis-redisson-test projektkönyvtárra.

Nyissa meg a pom.xml fájlt, és adjon hozzá egy függőséget a Redissonhoz:

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

Mentse a pom.xml fájlt.

Nyissa meg az App.java fájlt, és cserélje le a kódot a következőre:

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;
    }

}

Ez a kód bemutatja, hogyan csatlakozhat egy Azure Cache for Redis-példányhoz a Microsoft Entra ID használatával a Redisson ügyfélkódtár JCache API-támogatásával. A kód emellett tárolja és lekéri gyorsítótár egyik sztringértékét. A JCache-vel kapcsolatos további információkért lásd a JCache specifikációját.

Mentse az App.java fájlt.

Készítsen buildet és futtassa az alkalmazást

Hajtsa végre a következő Maven-parancsot az alkalmazás buildeléséhez és elindításához:

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

Az alábbi kimenetben láthatja, hogy a Message kulcs korábban gyorsítótárazott értékkel rendelkezett, amelyet az utolsó futtatáskor állítottak be. Az alkalmazás frissítette ezt a gyorsítótárazott értéket.

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

Az erőforrások eltávolítása

Ha folytatni szeretné a következő oktatóanyagot, megtarthatja az ebben a rövid útmutatóban létrehozott erőforrásokat, és újra felhasználhatja őket.

Ellenkező esetben, ha végzett a gyorsútmutató-mintaalkalmazással, törölheti az ebben a rövid útmutatóban létrehozott Azure-erőforrásokat a díjak elkerülése érdekében.

Fontos

Az erőforráscsoport törlése nem visszaállítható; az erőforráscsoport és a benne foglalt erőforrások véglegesen törlődnek. Figyeljen arra, hogy ne töröljön véletlenül erőforráscsoportot vagy erőforrásokat. Ha a minta üzemeltetéséhez létrehozott erőforrásokat egy meglévő erőforráscsoporton belül hozta létre, amely a megtartani kívánt erőforrásokat tartalmazza, az erőforráscsoport törlése helyett egyenként törölheti az egyes erőforrásokat.

  1. Jelentkezzen be az Azure Portalra, és válassza az Erőforráscsoportok elemet.

  2. A Szűrő név szerint szövegmezőbe írja be az erőforráscsoport nevét. A cikk utasításai egy erőforráscsoportot TestResourceshasználtak. Az eredménylistában az erőforráscsoportban válassza az Erőforrások tesztelése, majd az Erőforráscsoport törlése lehetőséget.

    Képernyőkép az Azure Portalról, amelyen az Erőforráscsoport lap látható, kiemelve az Erőforráscsoport törlése gombot.

  3. Írja be az erőforráscsoport nevét a törlés megerősítéséhez, majd válassza a Törlés lehetőséget.

A rendszer néhány pillanaton belül törli az erőforráscsoportot és a benne foglalt erőforrásokat.

Következő lépések

Ebben a rövid útmutatóban megtanulta, hogyan használhatja az Azure Cache for Redist egy Java-alkalmazásból Redisson Redis-ügyféllel és JCache-vel. Folytassa a következő rövid útmutatóval az Azure Cache for Redis ASP.NET webalkalmazással való használatához.