Compartir vía


Inicio rápido: Uso de Azure Cache for Redis en Java con el cliente Jedis Redis

En este inicio rápido, se incorpora Azure Redis Cache a una aplicación Java mediante el cliente de Redis Jedis. La caché es una caché segura y dedicada a la que se puede acceder desde cualquier aplicación de Azure.

Ir al código en GitHub

Clone el inicio rápido de Java del repositorio en GitHub.

Prerrequisitos

Creación de una instancia de Azure Managed Redis

  1. Para crear una instancia de Azure Managed Redis, inicie sesión en Azure Portal y seleccione Crear un recurso.

  2. En la página Crear un recurso , escriba Azure Managed Redis en el cuadro de búsqueda.

  3. Seleccione el icono azure Managed Redis y seleccione Crear.

  4. En el panel Crear instancia de Azure Managed Redis , configure las opciones de una nueva caché en la pestaña Aspectos básicos .

    Configuración Seleccione un valor Descripción
    Suscripción Desplácese hacia abajo y seleccione su suscripción. La suscripción en la que se va a crear esta nueva instancia de Azure Managed Redis.
    Grupo de recursos Desplácese hacia abajo y seleccione un grupo de recursos o Crear nuevo y escriba un nombre nuevo para el grupo de recursos. Nombre del grupo de recursos en el que se van a crear la caché y otros recursos. Al colocar todos los recursos de la aplicación en un grupo de recursos, puede administrarlos o eliminarlos fácilmente.
    Nombre Escriba un nombre que sea único en la región. El nombre de la memoria caché debe ser una cadena de entre 1 y 63 caracteres combinada con el nombre de la región de la memoria caché que contenga solo números, letras o guiones. (Si el nombre de la caché tiene menos de 45 caracteres, debería funcionar en todas las regiones disponibles actualmente). El nombre debe comenzar y terminar con un número o una letra, y no puede contener guiones consecutivos. El nombre de host de la instancia de caché es \<DNS name\>.\<Azure region\>.redis.azure.net.
    Región Desplácese hacia abajo y seleccione una ubicación. Azure Managed Redis está disponible en las regiones de Azure seleccionadas.
    Nivel de datos Seleccione En memoria para alto rendimiento o Flash para cachés de menor rendimiento. Los niveles en memoria incluyen Equilibrado, Optimizado para memoria y Optimizado para proceso. Use el nivel Flash para usar el almacenamiento de datos en memoria (RAM) y en disco (SSD).
    Tamaño de la caché Despliegue y seleccione un tamaño. El tamaño de la caché depende del nivel. El tamaño más pequeño es un nivel equilibrado. El tamaño más grande del nivel en memoria es un nivel optimizado para memoria.
    Rendimiento Despliegue y seleccione una preferencia de rendimiento. El rendimiento depende del número de vCPU. El número de vCPU varía con el nivel. Compute Optimized tiene la mayoría de las vCPU.

    Para obtener instrucciones sobre cómo elegir el nivel de rendimiento adecuado, consulte Elección del nivel correcto.

    Importante

    Todos los niveles en memoria que usan más de 235 GB de almacenamiento se encuentran en versión preliminar pública, incluidos los Optimizados para Memoria M350 y superiores; los Equilibrados B350 y superiores; y los Optimizados para Computación X350 y superiores. Todos estos niveles y superiores se encuentran en versión preliminar pública.

    Todos los niveles optimizados para Flash están en versión preliminar pública.

  5. Seleccione Siguiente: Redes y seleccione deshabilitar el acceso público y use el acceso privado o Habilitar el acceso público desde todas las redes.

  6. Seleccione Siguiente: Replicación geográfica activa. Para usar la replicación geográfica activa, debe habilitarse durante el aprovisionamiento. Las memorias caché sin replicación geográfica activa no se pueden agregar ni unirse a grupos de replicación geográfica activos más adelante. Para obtener más información, consulte Configuración de la replicación geográfica activa para instancias de Azure Managed Redis.

  7. Seleccione la pestaña Siguiente: Avanzadas .

    Configure los módulos de Redis que quiera agregar a la instancia.

    Establecer directiva de agrupación en clústeres:

    • Uso de Enterprise para usar RedisSearch u otros módulos
    • Utiliza OSS para una caché agrupada.
    • Utilice No Agrupado (Versión Preliminar) para una caché no agrupada.

    Para obtener más información sobre cómo elegir Directiva de agrupación en clústeres, consulte directiva de clúster.

    De forma predeterminada, para una nueva caché administrada:

    • Microsoft Entra ID está habilitado.
    • La autenticación mediante claves de acceso está deshabilitada por motivos de seguridad.

    Importante

    No se pueden cambiar los módulos después de crear una instancia de caché. Los módulos deben estar habilitados en el momento de crear una instancia de Azure Managed Redis. No hay ninguna opción para habilitar la configuración de un módulo después de crear una memoria caché.

    Importante

    Para obtener una seguridad óptima, se recomienda usar Microsoft Entra ID con identidades administradas para autorizar solicitudes en la memoria caché, si es posible. La autorización mediante Microsoft Entra ID y las identidades administradas proporciona una seguridad y facilidad de uso superiores a la autorización mediante claves de acceso compartidas. Para más información sobre el uso de identidades administradas con la memoria caché, consulte Uso de Microsoft Entra ID para la autenticación de caché.

    Importante

    No se puede cambiar la directiva de agrupación en clústeres de una instancia de Azure Managed Redis después de crearla. Si usa RediSearch, se requiere la directiva de clúster Enterprise y NoEviction es la única directiva de expulsión admitida.

    Importante

    Si usa esta instancia de caché en un grupo de replicación geográfica, las directivas de expulsión no se pueden cambiar después de crear la instancia. Asegúrese de conocer las directivas de expulsión de los nodos principales antes de crear la caché. Para obtener más información sobre la replicación geográfica activa, consulte Requisitos previos de replicación geográfica activa.

  8. Seleccione Siguiente: Etiquetas y omítalo.

  9. Seleccione Siguiente: Revisar y crear.

  10. Revise la configuración y seleccione Crear.

    La instancia de Redis tarda varios minutos en crearse. Puede supervisar el progreso en la página Información general de Azure Managed Redis. Cuando Estado se muestra como En ejecución, la memoria caché está lista para su uso.

Creación de una instancia de Azure Redis Cache

  1. En Azure Portal, busque y seleccione Azure Cache for Redis.

  2. En la página Azure Cache for Redis , seleccione Crear>Azure Cache for Redis.

  3. En la pestaña Aspectos básicos de la página Nueva caché de Redis , configure los valores siguientes:

    • Suscripción: seleccione la suscripción que vaya a usar.
    • Grupo de recursos: seleccione un grupo de recursos o seleccione Crear nuevo y escriba un nuevo nombre de grupo de recursos. Colocar todos los recursos de la aplicación en el mismo grupo de recursos le permite administrarlos o eliminarlos fácilmente.
    • Nombre: escriba un nombre de caché que sea único en la región. El nombre debe:
      • Ser una cadena de 1 a 63 caracteres.
      • Contener solo números, letras y guiones.
      • Comience y termine con un número o letra.
      • No contienen guiones consecutivos.
    • Región: seleccione una región de Azure cerca de otros servicios que usen la memoria caché.
    • SKU de caché: seleccione una SKU para determinar los tamaños, el rendimiento y las características disponibles de la memoria caché.
    • Tamaño de caché: seleccione un tamaño de caché. Para más información, consulte la introducción a Azure Cache for Redis.

    Captura de pantalla que muestra la pestaña Datos básicos de la página Nueva Redis Cache.

  4. Seleccione la pestaña Redes o seleccione Siguiente: Redes.

  5. En la pestaña Redes, seleccione un método de conectividad que se usará para la memoria caché. Se recomienda un punto de conexión privado para la seguridad. Si selecciona Punto de conexión privado, seleccione Agregar punto de conexión privado y cree el punto de conexión privado.

  6. Seleccione la pestaña Avanzadas o seleccione Siguiente: Avanzadas.

  7. En el panel Opciones avanzadas , configure las siguientes opciones:

    • Seleccione Autenticación de Microsoft Entra o Autenticación de claves de acceso. La autenticación de Microsoft Entra está habilitada de forma predeterminada.
    • Elija si habilitar el puerto que no es TLS.
    • Para una caché Premium, puede configurar o deshabilitar zonas de disponibilidad. No se pueden deshabilitar las zonas de disponibilidad después de crear la memoria caché. En el caso de una caché estándar, las zonas de disponibilidad se asignan automáticamente. Las zonas de disponibilidad no están disponibles para la SKU básica.
    • Para una caché Premium, configure los valores de Recuento de réplicas, Agrupación en clústeres y recuento de particiones, identidad administrada asignada por el sistema y Persistencia de datos.

    En la imagen siguiente se muestra la pestaña Avanzadas de la SKU estándar.

    Captura de pantalla que muestra el panel Avanzado para una caché de SKU estándar.

    Importante

    Use Microsoft Entra ID con identidades administradas para autorizar solicitudes en la memoria caché si es posible. La autorización con el identificador y la identidad administrada de Microsoft Entra proporcionan una mejor seguridad y es más fácil de usar que la autorización de clave de acceso compartido. Para más información sobre el uso de identidades administradas con la memoria caché, consulte Uso de Microsoft Entra ID para la autenticación de caché.

  8. Opcionalmente, seleccione la pestaña Etiquetas o seleccione Siguiente: Etiquetas y escriba los nombres de etiqueta y los valores para clasificar los recursos de caché.

  9. Seleccione Revisar y crear y, una vez superada la validación, seleccione Crear.

La nueva implementación de caché tarda varios minutos. Puede supervisar el progreso de la implementación en la página Azure Cache for Redis del portal. Cuando el estado de la caché muestra En ejecución, la memoria caché está lista para usarse.

Recuperación del nombre de host, los puertos y las claves de acceso desde Azure Portal

Para conectar el servidor de Azure Cache for Redis, el cliente de dicha caché necesita el nombre de host, los puertos y una clave para la caché. Es posible que algunos clientes utilicen nombres ligeramente diferentes para estos elementos. Puede obtener el nombre de host, los puertos y las claves de Azure Portal.

  • Para obtener el nombre de host y los puertos de la memoria caché, seleccione Información general en el menú Recurso. El nombre de host tiene el formato <DNS name>.redis.cache.windows.net.

    Captura de pantalla que muestra las propiedades de Azure Cache for Redis.

  • Para obtener las claves de acceso, seleccione Autenticación en el menú Recurso. A continuación, seleccione la pestaña claves de acceso.

    Captura de pantalla que muestra las claves de acceso de Azure Cache for Redis.

Configuración del entorno de trabajo

En los pasos siguientes se muestra cómo configurar el entorno de trabajo para la aplicación Java.

export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_PORT=10000
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export REDIS_CACHE_PORT=6380

Reemplace los marcadores de posición por los siguientes valores:

  • <your-host-name>: el nombre de host DNS. Para obtener el nombre de host y los puertos de la memoria caché, seleccione Información general en el menú Recurso. El nombre de host tiene el formato <DNS name>.redis.cache.windows.net.

    Captura de pantalla que muestra las propiedades de Azure Cache for Redis.

  • <your-client-id>: el identificador de aplicación (cliente) del registro de la aplicación de Azure AD.

  • <your-client-secret>: el secreto de cliente del registro de la aplicación de Azure AD.

  • <your-tenant-id>: identificador de inquilino de Azure Active Directory.

    Nota:

    En el ejemplo anterior se usa la autenticación secreta de cliente. También puede configurar la redis-authx-entraid biblioteca para usar otros métodos de autenticación como identidad administrada o certificado de cliente modificando la configuración en el EntraIDTokenAuthConfigBuilder código.


Creación de una nueva aplicación Java

  1. Use maven para generar una nueva aplicación de inicio rápido:

    mvn archetype:generate \
        -DarchetypeGroupId=org.apache.maven.archetypes \
        -DarchetypeArtifactId=maven-archetype-quickstart \
        -DarchetypeVersion=1.3 \
        -DinteractiveMode=false \
        -DgroupId=example.demo \
        -DartifactId=redis-jedis-test \
        -Dversion=1.0
    
  2. Cambie al nuevo directorio del proyecto redis-jedis-test.

  3. Abra el archivo pom.xml. En el archivo, verá una dependencia de Jedis:

    Nota:

    Microsoft ha entrado en una asociación con Redis, Inc. Como parte de esta colaboración, la compatibilidad de autenticación con Microsoft Entra ID se ha trasladado de Azure SDK a extensiones de Redis Entra ID. La nueva redis-authx-entraid biblioteca proporciona capacidades de autenticación mejoradas y es el enfoque recomendado para la autenticación con Microsoft Entra ID y Azure Cache for Redis.

    <dependency>
        <groupId>redis.clients.authentication</groupId>
        <artifactId>redis-authx-entraid</artifactId>
        <version>0.1.1-beta2</version>
    </dependency>
    
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>6.0.0</version> 
    </dependency>
    
  4. Cierre el archivo pom.xml.

  5. Abra App.java y observe el código con el código siguiente:

    package example.demo;
    
    import com.azure.identity.DefaultAzureCredentialBuilder;
    import redis.clients.authentication.core.TokenAuthConfig;
    import redis.clients.authentication.entraid.AzureTokenAuthConfigBuilder;
    import redis.clients.jedis.DefaultJedisClientConfig;
    import redis.clients.jedis.HostAndPort;
    import redis.clients.jedis.UnifiedJedis;
    import redis.clients.jedis.authentication.AuthXManager;
    
    import java.util.Set;
    
    /**
    * Redis test with Microsoft Entra ID authentication using redis-authx-entraid
    * For more information about Redis authentication extensions, see:
    * https://redis.io/docs/latest/develop/clients/jedis/amr/
    *
    */
    public class App
    {
        public static void main( String[] args )
        {
            String REDIS_CACHE_HOSTNAME = System.getenv("REDIS_CACHE_HOSTNAME");
            int REDIS_PORT = Integer.parseInt(System.getenv().getOrDefault("REDIS_CACHE_PORT", "10000"));
            String SCOPES = "https://redis.azure.com/.default"; // The scope for Azure Cache for Redis
    
            // Build TokenAuthConfig for Microsoft Entra ID authentication
            TokenAuthConfig tokenAuthConfig = AzureTokenAuthConfigBuilder.builder()
                    .defaultAzureCredential(new DefaultAzureCredentialBuilder().build())
                    .scopes(Set.of(SCOPES))
                    .tokenRequestExecTimeoutInMs(2000)
                    .build();
    
            DefaultJedisClientConfig config = DefaultJedisClientConfig.builder()
                    .authXManager(new AuthXManager(tokenAuthConfig))
                    .ssl(true)
                    .build();
    
            UnifiedJedis jedis = new UnifiedJedis(
                    new HostAndPort(REDIS_CACHE_HOSTNAME, REDIS_PORT),
                    config);
    
            // Test the connection
            System.out.println(String.format("Database size is %d", jedis.dbSize()));
    
            // Simple PING command
            System.out.println( "\nCache Command  : Ping" );
            System.out.println( "Cache Response : " + jedis.ping());
    
            // Simple get and put of integral data types into the cache
            System.out.println( "\nCache Command  : GET Message" );
            System.out.println( "Cache Response : " + jedis.get("Message"));
    
            System.out.println( "\nCache Command  : SET Message" );
            System.out.println( "Cache Response : " + jedis.set("Message", "Hello! The cache is working from Java!"));
    
            // Demonstrate "SET Message" executed as expected...
            System.out.println( "\nCache Command  : GET Message" );
            System.out.println( "Cache Response : " + jedis.get("Message"));
    
            jedis.close();
        }
    }
    

    Este código muestra cómo conectarse a una instancia de Azure Redis Cache usando las variables de entorno de nombre de host de caché y clave. El código también almacena y recupera un valor de cadena en la memoria caché. Los PING comandos también se ejecutan.

  6. Cierre el archivo App.java.

Compilación y ejecución de la aplicación

Ejecute el siguiente comando de Maven para compilar y ejecutar la aplicación:

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

En la siguiente salida, puede ver que la clave Message tenía un valor almacenado en la caché. El valor se actualizó a uno nuevo mediante jedis.set. La aplicación también ejecutó los PING comandos.

Cache Command  : Ping
Cache Response : PONG

Cache Command  : GET Message
Cache Response : Hello! The cache is working from Java!

Cache Command  : SET Message
Cache Response : OK

Cache Command  : GET Message
Cache Response : Hello! The cache is working from Java!

Limpieza de recursos

Si planea continuar con el tutorial siguiente, puede mantener los recursos creados en este inicio rápido y volverlos a usar.

En caso contrario, si ya ha terminado con la aplicación de ejemplo de la guía de inicio rápido, puede eliminar los recursos de Azure creados en este tutorial para evitar cargos.

Importante

La eliminación de un grupo de recursos es irreversible y el grupo de recursos y todos los recursos que contiene se eliminarán de forma permanente. Asegúrese de no eliminar por accidente el grupo de recursos o los recursos equivocados. Si ha creado los recursos para hospedar este ejemplo en un grupo de recursos existente que contiene recursos que quiere conservar, puede eliminar cada recurso individualmente en lugar de eliminar el grupo de recursos.

  1. Inicie sesión en Azure Portal y después seleccione Grupos de recursos.

  2. Escriba el nombre del grupo de recursos en el cuadro de texto Filtrar por nombre. En las instrucciones de este artículo se usa un grupo de recursos llamado TestResources. En el grupo de recursos de la lista de resultados, seleccione Probar recursos y después, Eliminar grupo de recursos.

    Captura de pantalla de Azure Portal que muestra la página Grupo de recursos con el botón Eliminar grupo de recursos resaltado.

  3. Escriba el nombre del grupo de recursos para confirmar la eliminación y después, seleccione Eliminar.

Transcurridos unos instantes, el grupo de recursos y todos los recursos que contiene se eliminan.

Pasos siguientes

En este inicio rápido, ha aprendido a usar Azure Redis Cache desde una aplicación Java. Continúe con el siguiente inicio rápido para usar Azure Redis Cache con una aplicación web ASP.NET.