Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2022-11-07 GMT+08:00

hiredis in C++

Acceda a una instancia de DCS Redis a través de hiredis en un ECS en la misma VPC. Para obtener más información sobre cómo usar otros clientes de Redis, visite el sitio web oficial de Redis.

Las operaciones descritas en esta sección se aplican solo a instancias de nodo único, principal/en standby y de Clúster Proxy. Para usar C++ para conectarse a una instancia de Clúster Redis, consulte la descripción del cliente Redis de C++.

Prerrequisitos:

  • Se ha creado una instancia de DCS Redis y se encuentra en el estado Running.
  • Se ha creado un ECS. Para obtener más información sobre cómo crear un ECS, consulte Compra de ECS.
  • Si el ECS ejecuta el SO de Linux, asegúrese de que el entorno de compilación de GCC se ha instalado en el ECS.

Procedimiento

  1. Vea la dirección IP/nombre de dominio y el número de puerto de la instancia de DCS Redis a la que se debe acceder.Para obtener más información, consulte Consulta de detalles de instancia.
  2. Inicie sesión en el ECS.A continuación se utiliza CentOS como ejemplo para describir cómo acceder a una instancia en C++.
  3. Instalar GCC, Make, y hiredis.Si el sistema no proporciona un entorno de compilación, ejecute el siguiente comando yum para instalar el entorno:

    yum install gcc make

  4. Ejecute el siguiente comando para descargar y descomprimir el paquete contratado:wget https://github.com/redis/hiredis/archive/master.zip

    unzip master.zip

  5. Ir al directorio donde se guarda el paquete descomprimido contratados, y compilar e instalar contratados.make

    make install

  6. Acceda a la instancia de DCS mediante hiredis.A continuación se describe la autenticación de conexión y contraseña de contratados. Para obtener más información sobre el uso de contratados, visite el sitio web oficial de Redis.

    1. Edite el código de ejemplo para conectarse a una instancia de DCS y, a continuación, guarde el código y salga.

      vim connRedis.c

      Ejemplo:

      #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>
      #include <hiredis.h>
      int main(int argc, char **argv) {
           unsigned int j;
           redisContext *conn;
           redisReply *reply;
           if (argc < 3) {
                   printf("Usage: example {instance_ip_address} 6379 {password}\n");
                   exit(0);
           }
           const char *hostname = argv[1];
           const int port = atoi(argv[2]);
           const char *password = argv[3];
           struct timeval timeout = { 1, 500000 }; // 1.5 seconds
           conn = redisConnectWithTimeout(hostname, port, timeout);
           if (conn == NULL || conn->err) {
      		if (conn) {
                   printf("Connection error: %s\n", conn->errstr);
                   redisFree(conn);
      		} else {
                   printf("Connection error: can't allocate redis context\n");
      		}
           exit(1);
           }
           /* AUTH */
           reply = redisCommand(conn, "AUTH %s", password);
           printf("AUTH: %s\n", reply->str);
           freeReplyObject(reply);
      
           /* Set */
           reply = redisCommand(conn,"SET %s %s", "welcome", "Hello, DCS for Redis!");
           printf("SET: %s\n", reply->str);
           freeReplyObject(reply);
      
           /* Get */
           reply = redisCommand(conn,"GET welcome");
           printf("GET welcome: %s\n", reply->str);
           freeReplyObject(reply);
      
           /* Disconnects and frees the context */
           redisFree(conn);
           return 0;
      }
    2. Ejecute el siguiente comando para compilar el código:

      gcc connRedis.c -o connRedis -I /usr/local/include/hiredis -lhiredis

      Si se informa de un error, localice el directorio donde se guarda el archivo hiredis.h y modifique el comando de compilación.

      Después de la compilación, se obtiene un archivo ejecutable connRedis.

    3. Ejecute el siguiente comando para acceder a la instancia de DCS Redis elegida:

      ./connRedis {redis_ip_address} 6379 {password}

      {redis_instance_address} indica la dirección IP/nombre de dominio de la instancia DCS y 6379 es un número de puerto de ejemplo de la instancia DCS. Para obtener más información sobre cómo obtener la dirección IP/nombre de dominio y el puerto, consulte 1. Cambie la dirección IP/nombre de dominio y el puerto según sea necesario. {contraseña} indica la contraseña utilizada para iniciar sesión en la instancia de DCS elegida para Redis. Esta contraseña se define durante la creación de una instancia de DCS Redis.

      Ha accedido correctamente a la instancia si se muestra el siguiente resultado del comando:

      AUTH: OK
      SET: OK
      GET welcome: Hello, DCS for Redis!

    Si se informa de un error, indicando que no se pueden encontrar los archivos de biblioteca contratados, ejecute los siguientes comandos para copiar archivos relacionados a los directorios del sistema y agregar vínculos dinámicos:

    mkdir /usr/lib/hiredis

    cp /usr/local/lib/libhiredis.so.0.13 /usr/lib/hiredis/

    mkdir /usr/include/hiredis

    cp /usr/local/include/hiredis/hiredis.h /usr/include/hiredis/

    echo '/usr/local/lib' >>;>>;/etc/ld.so.conf

    ldconfig

    Reemplace las ubicaciones de los archivos so and .h por las actuales antes de ejecutar los comandos.