Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2022-11-08 GMT+08:00

Jedis

Acesse uma instância do DCS Redis por meio de Jedis em um ECS na mesma VPC. Para obter mais informações sobre como usar outros clientes do Redis, visite o site oficial do Redis.

Pré-requisitos

  • Uma instância do DCS Redis foi criada e está no estado Running.
  • Foi criado um ECS. Para obter detalhes sobre como criar um ECS, consulte Comprando um ECS .
  • Se o ECS executar o SO de Linux, certifique-se de que o ambiente de compilação Java tenha sido instalado no ECS.

Procedimento

  1. Visualize o endereço IP/nome do domínio e o número da porta da instância do DCS Redis a ser acessada.

    Para obter detalhes, consulte Exibindo Detalhes da Instância .

  2. Acesse o ECS.
  3. Use o Maven para adicionar a seguinte dependência ao arquivo pom.xml:

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>4.1.1</version>
    </dependency>

  4. Acesse a instância do DCS usando Jedis.

    Obtenha o código fonte do cliente Jedi. Use um dos dois métodos a seguir para acessar uma instância do DCS Redis por meio de Jedis:
    • Conexão de Jedis Únicos
    • Piscina Jedis

    Exemplo de código:

    1. Exemplo de uso de Jedis para se conectar a uma instância DCS Redis de cluster de nó único, mestre/em espera ou proxy com uma única conexão
      //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 command 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 indica o exemplo de endereço IP/nome de domínio da instância do DCS e a port indica o número da porta da instância do DCS. Para obter detalhes sobre como obter o endereço IP/nome do domínio e a porta, consulte 1. Altere o endereço IP/domínio e a porta conforme necessário. pwd indica a senha usada para fazer login na instância do DCS Redis escolhida. Essa senha é definida durante a criação da instância do DCS Redis.

    2. Exemplo de uso de Jedis para conexão a uma instância de cluster DCS Redis de nó único, principal/em espera ou proxy com pool de conexão
      //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 pool when the service operation is completed
           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 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 pool when the service operation is completed
           if (null != client) { 
               pool.returnResource(client); 
           } 
       } // end of try block
       //Destroy the Jedis pool when the application is closed
       pool.destroy();

      ip indica o endereço IP/nome de domínio da instância DCS e port indica o número da porta da instância DCS. Para obter detalhes sobre como obter o endereço IP/nome do domínio e a porta, consulte 1. Altere o endereço de IP/domínio e a porta conforme necessário. pwd indica a senha usada para fazer login na instância do DCS Redis escolhida. Essa senha é definida durante a criação da instância do DCS Redis.

    3. Exemplo de código para conexão com o Cluster do Redis usando uma única conexão
      • Com uma senha
        //The following shows password-protected access.
        int port = 6379;
        String host = "192.168.144.37";
        //Create JedisCluster.
        Set<HostAndPort> nodes = new HashSet<HostAndPort>();
        nodes.add(new HostAndPort(host, port));
        JedisCluster cluster = new JedisCluster(nodes, 5000, 3000, 10, "password", new JedisPoolConfig());
        cluster.set("key", "value");
        System.out.println("Connected to RedisCluster:" + cluster.get("key"));
        cluster.close();
      • Sem uma senha
        int port = 6379;
        String host = "192.168.144.37";
        //Create JedisCluster.
        Set<HostAndPort> nodes = new HashSet<HostAndPort>();
        nodes.add(new HostAndPort(host, port));
        JedisCluster cluster = new JedisCluster(nodes);
        cluster.set("key", "value");
        System.out.println("Connected to RedisCluster:" + cluster.get("key"));
        cluster.close();

      host indica o exemplo de endereço IP/nome de domínio da instância do DCS e a port indica o número da porta da instância do DCS. Para obter detalhes sobre como obter o endereço IP/nome do domínio e a porta, consulte 1. Altere o endereço IP/domínio e a porta conforme necessário. password indica a senha usada para fazer login na instância do DCS Redis escolhida. Essa senha é definida durante a criação da instância do DCS Redis.

  5. Compile o código de acordo com o arquivo readme no código fonte do cliente Jedis. Execute o cliente Jedis para acessar a instância do DCS Redis escolhida.