Updated on 2022-02-21 GMT+08:00

Accessing a DCS Redis Instance Through Jedis

Access a DCS Redis instance through Jedis on an ECS in the same VPC. For more information on how to use other Redis clients, visit https://redis.io/clients.

The operations described in this section apply only to single-node, master/standby, and Proxy Cluster instances. To use Jedis to connect to a Redis Cluster instance, see https://github.com/xetorthio/jedis#jedis-cluster.

Prerequisites

  • The DCS Redis instance you want to access is in the Running state.
  • An ECS has been created. For more information on how to create ECSs, see the Elastic Cloud Server User Guide.
  • If the ECS runs the Linux OS, ensure that the GCC compilation environment has been installed on the ECS.

Procedure

  1. View the IP address/domain name and port number of the DCS Redis instance to be accessed.

    For details, see Viewing Details of a DCS Instance.

  2. Log in to the ECS where you want to install Docker.
  3. Access the DCS instance by using Jedis.

    1. Obtain the source code of the Jedis client from https://github.com/xetorthio/jedis.
    2. Write code.

      Use either of the following two methods to access a DCS Redis instance through Jedis:

      • Single Jedis connection
      • Jedis pool

      Example code:

      1. Example code for a single Jedis connection
        // Creating a connection in password mode
         String host = "192.168.0.150"; 
         int port = 6379; 
         String pwd = "passwd"; 
          
         Jedis client = new Jedis(host, port); 
         client.auth(pwd);
         client.connect(); 
        // Run the set command
         String result = client.set("key-string", "Hello, Redis!"); 
        System.out.println( String.format("set instruction execution result:%s", result) );
        // Run the get command
         String value = client.get("key-string"); 
         System.out.println( String.format("get command result:%s", value) );
        
        // Creating a connection in password-free mode
         String host = "192.168.0.150"; 
         int port = 6379; 
          
         Jedis client = new Jedis(host, port); 
         client.connect(); 
        // Run the set command
         String result = client.set("key-string", "Hello, Redis!"); 
             System.out.println( String.format("set command result:%s", result) ); 
        // Run the get command
         String value = client.get("key-string"); 
         System.out.println( String.format("get command result:%s", value) );

        host indicates the example IP address/domain name of DCS instance and port indicates the port number of DCS instance. For details on how to obtain the IP address/domain name and port, see 1. Change the IP address and port as required. pwd indicates the password used for logging in to the chosen DCS Redis instance. This password is defined during DCS Redis instance creation. Do not hard code the plaintext password.

      2. Example code for a Jedis pool
        // Generate configuration information of a Jedis pool
         String ip = "192.168.0.150"; 
         int port = 6379; 
         String pwd = "passwd"; 
         GenericObjectPoolConfig config = new GenericObjectPoolConfig(); 
         config.setTestOnBorrow(false); 
         config.setTestOnReturn(false); 
         config.setMaxTotal(100); 
         config.setMaxIdle(100); 
         config.setMaxWaitMillis(2000); 
        JedisPool pool = new JedisPool(config, ip, port, 100000, pwd);//Generate a Jedis pool when the application is being initialized
        // Get a Jedis connection from the Jedis pool when a service operation occurs
         Jedis client = pool.getResource(); 
         try { 
             // Run commands
             String result = client.set("key-string", "Hello, Redis!"); 
             System.out.println( String.format("set command result:%s", result) ); 
             String value = client.get("key-string"); 
             System.out.println( String.format("get command result:%s", value) ); 
         } catch (Exception e) { 
             // TODO: handle exception
         } finally { 
             // Return the Jedis connection to the Jedis connection pool after the client's request is processed
             if (null != client) { 
                 pool.returnResource(client); 
             } 
         } // end of try block
         // Destroy the Jedis pool when the application is closed
         pool.destroy();
        
        // Configure the connection pool in the password-free mode
         String ip = "192.168.0.150"; 
         int port = 6379; 
         GenericObjectPoolConfig config = new GenericObjectPoolConfig(); 
         config.setTestOnBorrow(false); 
         config.setTestOnReturn(false); 
         config.setMaxTotal(100); 
         config.setMaxIdle(100); 
         config.setMaxWaitMillis(2000); 
         JedisPool pool = new JedisPool(config, ip, port, 100000);//Generate a JedisPool when the application is being initialized
        // Get a Jedis connection from the Jedis pool when a service operation occurs
         Jedis client = pool.getResource(); 
         try { 
             // Run commands
             String result = client.set("key-string", "Hello, Redis!"); 
             System.out.println( String.format("set command result:%s", result) ); 
             String value = client.get("key-string"); 
             System.out.println( String.format("get command result:%s", value) ); 
         } catch (Exception e) { 
             // TODO: handle exception
         } finally { 
             // Return the Jedis connection to the Jedis connection pool after the client's request is processed
             if (null != client) { 
                 pool.returnResource(client); 
             } 
         } // end of try block
         // Destroy the Jedis pool when the application is closed
         pool.destroy();

        ip indicates the IP address/domain name of DCS instance and port indicates the port number of DCS instance. For details on how to obtain the IP address/domain name and port, see 1. Change the IP address and port as required. pwd indicates the password used for logging in to the chosen DCS Redis instance. This password is defined during DCS Redis instance creation. Do not hard code the plaintext password.

    3. Compile code according to the readme file in the source code of the Jedis client. Run the Jedis client to access the chosen DCS Redis instance.