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.
Requisitos previos
- Una suscripción a Azure: cree una cuenta gratuita
- Apache Maven
Creación de una instancia de Azure Managed Redis (versión preliminar)
Para crear una instancia de Azure Managed Redis (versión preliminar), inicie sesión en Azure Portal y seleccione Crear un recurso.
En la página Nuevo, en el cuadro de búsqueda, escriba Azure Cache for Redis.
En la página Nueva instancia de Redis Cache, configure las opciones de la nueva caché.
Configuración Elegir 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 DNS 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, debe funcionar en todas las regiones disponibles actualmente). El nombre debe comenzar y terminar por 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
.Ubicación Desplácese hacia abajo y seleccione una ubicación. Azure Managed Redis está disponible en las regiones de Azure seleccionadas. Tipo de caché Desplegable y seleccione el nivel de rendimiento y el tamaño de caché. El nivel determina el rendimiento de la instancia de Redis, mientras que el tamaño de caché determina la memoria disponible para almacenar datos. Para obtener instrucciones sobre cómo elegir el nivel de rendimiento adecuado, consulte Elección del nivel correcto Seleccione Siguiente: Redes y seleccione un punto de conexión público o privado.
Seleccione Siguiente: Opciones avanzadas.
Configure los módulos Redis que quiere agregar a la instancia.
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
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é.
Establezca Directiva de agrupación en clústeres en Enterprise para una memoria caché no en clúster, o bien en OSS para una caché en clúster. Para obtener más información sobre cómo elegir Directiva de agrupación en clústeres, consulte directiva de clúster.
Si usa Replicación geográfica activa, debe configurarse durante la creación. Para obtener más información, consulte Configuración de la replicación geográfica activa para instancias de Azure Managed Redis.
Importante
No puede cambiar la directiva de agrupación en clústeres de una instancia de Azure Managed Redis (versión preliminar) 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.
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 Cache for Redis. No hay ninguna opción para habilitar la configuración de un módulo después de crear una memoria caché.
Seleccione Siguiente: Etiquetas y omítalo.
Seleccione Siguiente: Review + create (Revisar y crear).
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
Para crear una caché, inicie sesión en Azure Portal. En el menú de Azure Portal, seleccione Crear un recurso.
En el panel Comenzar, escriba Azure Cache for Redis en la barra de búsqueda. En los resultados de la búsqueda, encuentre Azure Cache for Redis y, a continuación, seleccione Crear.
En el panel Nueva Redis Cache, en la pestaña Aspectos básicos, configure las siguientes opciones para la memoria caché:
Configuración Acción Descripción Suscripción Seleccione la suscripción a Azure. La suscripción que se va a usar para crear la nueva instancia de Azure Cache for Redis. Grupo de recursos 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 va a crear la memoria 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 DNS Escriba un nombre único. El nombre de caché debe ser una cadena de 1 a 63 caracteres que contenga solo números, letras y guiones. El nombre debe comenzar y terminar por un número o una letra y no puede contener guiones consecutivos. El nombre de host de la instancia de caché es \<DNS name>.redis.cache.windows.net
.Ubicación Seleccione una ubicación. Una región de Azure cercana a otros servicios que usan la memoria caché. SKU de la caché Seleccione una SKU. La SKU determina los parámetros de tamaño, rendimiento y característica que están disponibles para la memoria caché. Para más información, consulte la introducción a Azure Cache for Redis. Tamaño de la caché Seleccione un tamaño de caché. Para más información, consulte la introducción a Azure Cache for Redis. Seleccione la pestaña Redes o Siguiente: Redes.
En la pestaña Redes, seleccione un método de conectividad que se usará para la memoria caché.
Seleccione la pestaña Opciones avanzadas o Siguiente: Opciones avanzadas.
En el panel Opciones avanzadas, compruebe o seleccione un método de autenticación en función de la siguiente información:
- De manera predeterminada, para una nueva caché Básica, Estándar o Premium, la Autenticación de Microsoft Entra está habilitada y la Autenticación de claves de acceso está deshabilitada.
- Para las cachés Básica o Estándar, puede elegir la selección de un puerto que no sea TLS.
- Para las cachés Estándar y Premium, puede habilitar las zonas de disponibilidad. No puede deshabilitar las zonas de disponibilidad una vez creada la caché.
- En el caso de una caché Premium, configure las opciones para un puerto que no sea TLS, la agrupación en clústeres, la identidad administrada y la persistencia de datos.
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é.
(Opcional) Seleccione la pestaña Etiquetas o Siguiente: Etiquetas.
(Opcional) En la pestaña Etiquetas, escriba un nombre de etiqueta y un valor si desea clasificar el recurso de caché.
Seleccione el botón Revisar y crear.
En la pestaña Revisar y crear, Azure valida automáticamente la configuración.
Tras aparecer el mensaje verde Validación superada, seleccione Crear.
Se produce una nueva implementación de caché durante varios minutos. Puede supervisar el progreso de la implementación en el panel Información general de Azure Cache for Redis. Cuando Estado 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
.Para obtener las claves de acceso, seleccione Autenticación en el menú Recurso. A continuación, seleccione la pestaña Claves de acceso.
Configuración del entorno de trabajo
En los pasos siguientes se muestra cómo configurar el entorno de trabajo para la aplicación Java. Puede optar por autenticarse con Azure Cache for Redis mediante Microsoft Entra ID (recomendado), o bien claves de acceso.
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
export REDIS_CACHE_PORT=10000
export REDIS_CACHE_HOSTNAME=<your-host-name>.redis.cache.windows.net
export USER_NAME=<user-name>
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
.<user-name>
= Id. de objeto de la identidad administrada o de la entidad de servicio.Puede obtener el nombre de usuario mediante los pasos siguientes:
Creación de una nueva aplicación Java
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
Cambie al nuevo directorio del proyecto redis-jedis-test.
Abra el archivo pom.xml. En el archivo, verá una dependencia de Jedis:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.15.0</version> <!-- {x-version-update;com.azure:azure-identity;dependency} --> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>5.2.0</version> <!-- {x-version-update;redis.clients:jedis;external_dependency} --> </dependency>
Cierre el archivo pom.xml.
Abra App.java y observe el código con el código siguiente:
package example.demo; import com.azure.identity.DefaultAzureCredential; import com.azure.identity.DefaultAzureCredentialBuilder; import com.azure.core.credential.TokenRequestContext; import redis.clients.jedis.DefaultJedisClientConfig; import redis.clients.jedis.Jedis; /** * Redis test * */ public class App { public static void main( String[] args ) { boolean useSsl = true; //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. This token will be used as the password. String token = defaultAzureCredential .getToken(new TokenRequestContext() .addScopes("https://redis.azure.com/.default")).block().getToken(); String cacheHostname = System.getenv("REDIS_CACHE_HOSTNAME"); String username = System.getenv("USER_NAME"); int port = Integer.parseInt(System.getenv().getOrDefault("REDIS_CACHE_PORT", "6380")); // Connect to the Azure Cache for Redis over the TLS/SSL port using the key. Jedis jedis = new Jedis(cacheHostname, port, DefaultJedisClientConfig.builder() .password(token) // Microsoft Entra access token as password is required. .user(username) // Username is Required .ssl(useSsl) // SSL Connection is Required .build()); // Perform cache operations using the cache connection object... // 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")); // Get the client list, useful to see if connection list is growing... System.out.println( "\nCache Command : CLIENT LIST" ); System.out.println( "Cache Response : " + jedis.clientList()); 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é. También se ejecutan los comandos
PING
yCLIENT LIST
.Cierre el archivo App.java.
Compilar y ejecutar 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 comandos PING
y CLIENT LIST
.
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!
Cache Command : CLIENT LIST
Cache Response : id=777430 addr= :58989 fd=22 name= age=1 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 ow=0 owmem=0 events=r cmd=client numops=6
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.
Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
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.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.