How to connect to Azure Managed Redis on Java [Using Lettuce] [Erro: Unable to connect]

Yadav, Ankit-ZC 20 Reputation points
2025-11-03T09:58:07.4533333+00:00

I am trying to connect to Azure Managed Redis instance using the Lettuce utlility along with Azure Entra Id Service Principle. I am getting error as : Unable to connect to <redis-instance>.eastus2.redis.azure.net/<unresolved>:10000

Azure Cache for Redis
Azure Cache for Redis
An Azure service that provides access to a secure, dedicated Redis cache, managed by Microsoft.
{count} votes

Answer accepted by question author
  1. Kalyani Kondavaradala 4,595 Reputation points Microsoft External Staff Moderator
    2025-11-03T15:50:08.8166667+00:00

    Hi Yadav, Ankit-ZC,

    thanks for posting on Microsoft Q&A!

    Could you please validate and check the following points.

    1. Test Connectivity: Use the redis-cli or PSPING tool to test connectivity to your Redis instance. For redis-cli, use:
         redis-cli -h <your-redis-name>.redis.cache.windows.net -p 10000
      
      For PSPING, run:
         psping -q <your-redis-name>.redis.cache.windows.net:10000
      
      Ensure you receive packets without loss. This helps confirm whether the issue is client configuration or network connectivity.
    2. Review Network Configuration:
      • Check if your Azure Redis Cache is set up within a Virtual Network, and ensure your application can access it.
      • If you're using a Private Endpoint, make sure that Public Network Access is set as required.
    3. Avoid Using Private Endpoint DNS: If your application is connecting using an endpoint like <instancename>.<region>.privatelink.redis.cache.windows.net, switch to <instancename>.<region>.redis.azure.net and port 10000 for the connection.
    4. TLS Configuration: Ensure that your client is configured to use TLS 1.2. Misconfigurations here can often lead to connectivity issues.
    5. Firewall Rules: If a firewall is configured for your Azure Managed Redis, make sure that your client’s IP address is allowed.

    please go through the following document's for Reference.

    https://learn.microsoft.com/en-us/azure/redis/java-get-started?pivots=azure-managed-redis

    https://learn.microsoft.com/en-us/azure/redis/troubleshoot-connectivity

    Meanwhile Can you please clarify below things.

    • What specific version of Lettuce are you using?
    • Are there any additional error messages or logs you can share?
    • Have you checked the Azure portal for any alerts or maintenance notifications relating to your Redis instance?

    Thanks!

    Kalyani

    1 person found this answer helpful.

1 additional answer

Sort by: Most helpful
  1. Carlos Jesús Rojas Gutiérrez 435 Reputation points
    2025-11-04T03:00:03.9266667+00:00

    Causas comunes del error con Lettuce y Azure Entra ID

    Puerto incorrecto (10000)

    Azure Cache for Redis usa por defecto el puerto 6379 para conexiones estándar.

      El puerto `10000` no es válido para Redis, a menos que estés usando una configuración personalizada (como Redis Enterprise con TLS).
      
      **Endpoint mal resuelto (**`<unresolved>`**)**
      
         Puede deberse a:
         
               DNS mal configurado.
               
                     Endpoint incorrecto en el código.
                     
                           Falta de acceso a red privada o reglas de firewall.
                           
                           **Autenticación con Azure Entra ID**
                           
                              Para usar **principio de servicio (Service Principal)** con Lettuce, necesitas el paquete `redis-authx-entraid` y configurar correctamente el token de acceso.
                              
    

    Pasos para conectar correctamente con Lettuce y Azure Entra ID

    1. Usa el puerto correcto

    java

    RedisURI redisUri = RedisURI.create("rediss://<redis-instance>.redis.cache.windows.net:6380");
    

    Usa rediss:// si estás usando TLS (recomendado).

    Asegúrate de que el nombre del host esté bien escrito.

    2. Agrega dependencia para Entra ID

    xml

    <dependency>
      <groupId>redis.clients.authentication</groupId>
      <artifactId>redis-authx-entraid</artifactId>
      <version>0.1.1-beta1</version>
    </dependency>
    

    3. Autenticación con Service Principal

    java

    RedisCredentialsProvider provider = RedisAuthxEntraId.builder()
        .clientId("<your-client-id>")
        .clientSecret("<your-client-secret>")
        .tenantId("<your-tenant-id>")
        .build();
    
    RedisClient client = RedisClient.create(redisUri);
    StatefulRedisConnection<String, String> connection = client.connect();
    

    4. Verifica conectividad

    Usa redis-cli o psping para probar acceso al endpoint desde tu máquina.

    Revisa reglas de firewall, red virtual y configuración de acceso privado si aplica.

    Recursos útiles

    Guía oficial de conexión con Lettuce y Entra ID

    Solución de problemas de conectividad en Azure Redis

    • Pregunta original en Microsoft Q&A

      Causas comunes del error con Lettuce y Azure Entra ID

      1. Puerto incorrecto (10000)
        • Azure Cache for Redis usa por defecto el puerto 6379 para conexiones estándar.
        • El puerto 10000 no es válido para Redis, a menos que estés usando una configuración personalizada (como Redis Enterprise con TLS).
      2. Endpoint mal resuelto (<unresolved>)
        • Puede deberse a:
        • DNS mal configurado.
        • Endpoint incorrecto en el código.
        • Falta de acceso a red privada o reglas de firewall.
      3. Autenticación con Azure Entra ID
        • Para usar principio de servicio (Service Principal) con Lettuce, necesitas el paquete redis-authx-entraid y configurar correctamente el token de acceso.

      Pasos para conectar correctamente con Lettuce y Azure Entra ID

      1. Usa el puerto correcto

      java
        RedisURI redisUri = RedisURI.create("rediss://<redis-instance>.redis.cache.windows.net:6380");
      
      • Usa rediss:// si estás usando TLS (recomendado).
      • Asegúrate de que el nombre del host esté bien escrito.

      2. Agrega dependencia para Entra ID

      xml
        <dependency>
        <groupId>redis.clients.authentication</groupId>
        <artifactId>redis-authx-entraid</artifactId>
        <version>0.1.1-beta1</version>
      

    </dependency>

      
      #### 3. **Autenticación con Service Principal**
    
      java
      
      ```php
      RedisCredentialsProvider provider = RedisAuthxEntraId.builder()
        .clientId("<your-client-id>")
        .clientSecret("<your-client-secret>")
        .tenantId("<your-tenant-id>")
        .build();
    
    RedisClient client = RedisClient.create(redisUri);
    StatefulRedisConnection<String, String> connection = client.connect();
    

    4. Verifica conectividad

    • Usa redis-cli o psping para probar acceso al endpoint desde tu máquina.
    • Revisa reglas de firewall, red virtual y configuración de acceso privado si aplica.

    Recursos útiles

    • Guía oficial de conexión con Lettuce y Entra ID
    • Solución de problemas de conectividad en Azure Redis
    • Pregunta original en Microsoft Q&A

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.