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
- 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.
- Inicie sesión en el ECS.
A continuación se utiliza CentOS como ejemplo para describir cómo acceder a una instancia en C++.
- 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
- Ejecute el siguiente comando para descargar y descomprimir el paquete contratado:
wget https://github.com/redis/hiredis/archive/master.zip
unzip master.zip
- Ir al directorio donde se guarda el paquete descomprimido contratados, y compilar e instalar contratados.
make
make install
- 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.
- Edite el código de ejemplo para conectarse a una instancia de DCS y, a continuación, guarde el código y salga.
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; }
- 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.
- 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.
- Edite el código de ejemplo para conectarse a una instancia de DCS y, a continuación, guarde el código y salga.