Accessing a DCS Redis Instance Through redis-cli

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

Note

  • Redis 3.0 does not support port customization and allows only port 6379. For Redis 4.0 and later, you can specify a port or use the default port 6379. The following uses the default port 6379. If you have specified a port, replace 6379 with the actual port.

  • When connecting to a Redis Cluster instance, ensure that -c is added to the command. Otherwise, the connection will fail.

    • Run the following command to connect to a Redis Cluster instance:

      ./redis-cli -h {dcs_instance_address} -p 6379 -a {password} -c

    • Run the following command to connect to a single-node, master/standby, or Proxy Cluster instance:

      ./redis-cli -h {dcs_instance_address} -p 6379 -a {password}

    For details, see 3 and 4.

  • If SSL is enabled for a single-node or master/standby DCS Redis 6.0 instance, set an SSL certificate path.

    ./redis-cli -h {dcs_instance_address} -p 6379 -a {password} --tls --cacert {certification file path}

  • If SSL is enabled for a Redis Cluster DCS Redis 6.0 instance, set a certificate path.

    ./redis-cli -h {dcs_instance_address} -p 6379 -a {password} -c --tls --cacert {certification file path}

  • To connect to Redis with SSL encryption, use redis-cli 6.x or later.

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 (Linux)

  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. Install redis-cli.

    The following steps assume that your client is installed on the Linux OS.

    1. Log in to the ECS.

    2. Run the following command to download the source code package of your Redis client from https://download.redis.io/releases/redis-6.2.13.tar.gz:

      wget http://download.redis.io/releases/redis-6.2.13.tar.gz

      Note

      The following uses redis-6.2.13 as an example. For details, see the Redis official website.

    3. Run the following command to decompress the source code package of your Redis client:

      tar -xzf redis-6.2.13.tar.gz

    4. Run the following commands to go to the Redis directory and compile the source code of your Redis client:

      cd redis-6.2.13

      make

      cd src

  3. Access a DCS instance of a type other than Redis Cluster.

    Perform the following procedure to access a single-node, master/standby instance.

    ./redis-cli -h ${dcs_instance_address} -p 6379 -a ${password}

    Note

    1. If the instance is password-free, connect it by running the ./redis-cli -h ${dcs_instance_address} -p 6379 command.

    2. If the instance is password-protected, connect it by running the ./redis-cli -h ${dcs_instance_address} -p 6379 -a ${password} command.

    3. {dcs_instance_address} can be the Connection Address (domain name) or IP Address. For details, see Should I Use Domain Name or IP Address to Connect to a Redis Instance?.

      image1

  4. Access a DCS instance of the Redis Cluster type.

    Do as follows to access a Redis Cluster instance:

    1. Run the following commands to access the chosen DCS Redis instance:

      ./redis-cli -h {dcs_instance_address} -p 6379 -a {password} -c

      {dcs_instance_address} indicates the IP address/domain name of the DCS Redis instance, 6379 is the port used for accessing the instance, {password} is the password of the instance, and -c is used for accessing Redis Cluster nodes. The IP address/domain name and port number are obtained in 1.

      Example:

      root@ecs-redis:~/redis-6.2.13/src# ./redis-cli -h 192.168.0.85 -p 6379 -a ****** -c
      192.168.0.85:6379>
      
    2. Run the following command to view the Redis Cluster node information:

      cluster nodes

      Each shard in a Redis Cluster has a master and a replica by default. The proceeding command provides all the information of cluster nodes.

      192.168.0.85:6379> cluster nodes
      0988ae8fd3686074c9afdcce73d7878c81a33ddc 192.168.0.231:6379@16379 slave f0141816260ca5029c56333095f015c7a058f113 0 1568084030
      000 3 connected
      1a32d809c0b743bd83b5e1c277d5d201d0140b75 192.168.0.85:6379@16379 myself,master - 0 1568084030000 2 connected 5461-10922
      c8ad7af9a12cce3c8e416fb67bd6ec9207f0082d 192.168.0.130:6379@16379 slave 1a32d809c0b743bd83b5e1c277d5d201d0140b75 0 1568084031
      000 2 connected
      7ca218299c254b5da939f8e60a940ac8171adc27 192.168.0.22:6379@16379 master - 0 1568084030000 1 connected 0-5460
      f0141816260ca5029c56333095f015c7a058f113 192.168.0.170:6379@16379 master - 0 1568084031992 3 connected 10923-16383
      19b1a400815396c6223963b013ec934a657bdc52 192.168.0.161:6379@16379 slave 7ca218299c254b5da939f8e60a940ac8171adc27 0 1568084031
      000 1 connected
      

      Write operations can only be performed on master nodes. The CRC16 of the key modulo 16384 is taken to compute what is the hash slot of a given key.

      As shown in the following, the value of CRC16 (KEY) mode 16384 determines the hash slot that a given key is located at and redirects the client to the node where the hash slot is located at.

      192.168.0.170:6379> set hello world
      -> Redirected to slot [866] located at 192.168.0.22:6379
      OK
      192.168.0.22:6379> set happy day
      OK
      192.168.0.22:6379> set abc 123
      -> Redirected to slot [7638] located at 192.168.0.85:6379
      OK
      192.168.0.85:6379> get hello
      -> Redirected to slot [866] located at 192.168.0.22:6379
      "world"
      192.168.0.22:6379> get abc
      -> Redirected to slot [7638] located at 192.168.0.85:6379
      "123"
      192.168.0.85:6379>
      

Procedure (Windows)

Download the compilation package of the Redis client for Windows. (This is not the source code package.) Decompress the package in any directory, open the CLI tool cmd.exe, and go to the directory. Then, run the following command to access the DCS Redis instance:

redis-cli.exe -h XXX -p 6379

XXX indicates the IP address/domain name of the DCS instance and 6379 is an example port number used for accessing the DCS instance. For details about how to obtain the IP address/domain name and port number, see Viewing Details of a DCS Instance. Change the address and port as required.