hiredis em C++
Acesse uma instância do DCS Redis por meio de contratos em um ECS na mesma VPC. Para obter mais informações sobre como usar outros clientes do Redis, visite o site oficial do Redis.
![](https://support.huaweicloud.com/intl/pt-br/usermanual-dcs/public_sys-resources/note_3.0-pt-br.png)
As operações descritas nesta seção se aplicam somente a instâncias de cluster de proxy, de nó único, mestre/em espera e de cluster de proxy. Para usar o C++ para se conectar a uma instância do Cluster do Redis, consulte a descrição do cliente do C++ 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, verifique se o ambiente de compilação GCC foi instalado no ECS.
Procedimento
- 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 .
- Acesse o ECS.
A seguir, o CentOS é usado como um exemplo para descrever como acessar uma instância em C++.
- Instale o GCC, o Make e o Contractis.
Se o sistema não fornecer um ambiente de compilação, execute o seguinte comando yum para instalar o ambiente:
yum install gcc make
- Execute o seguinte comando para fazer o download e descompactar o pacote hireis:
wget https://github.com/redis/hiredis/archive/master.zip
unzip master.zip
- Vá para o diretório em que o pacote descompactado hireis é salvo, e compilar e instalar contratouis.
make
make install
- Acesse a instância do DCS usando hiredis.
O seguinte descreve a autenticação de conexão e senha de contratouis. Para obter mais informações sobre como usar o hiredis, visite o site oficial do Redis.
- Edite o código de exemplo para conexão a uma instância de DCS e salve o código e saia.
Exemplo:
#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; }
- Execute o seguinte comando para compilar o código:
gcc connRedis.c -o connRedis -I /usr/local/include/hiredis -lhiredis
Se um erro for relatado, localize o diretório onde o arquivo hiredis.h é salvo e modifique o comando de compilação.
Após a compilação, um arquivo executável connRedis é obtido.
- Execute o seguinte comando para acessar a instância do DCS Redis escolhida:
./connRedis {redis_ip_address} 6379 {password}
{redis_instance_address} indica o endereço IP/nome de domínio da instância DCS e 6379 é um número de porta de exemplo 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 IP/nome do domínio e a porta conforme necessário. {password} indica a senha usada para efetuar login na instância do DCS Redis escolhida. Essa senha é definida durante a criação da instância do DCS Redis.
Você acessou a instância com êxito se a seguinte saída do comando for exibida:
AUTH: OK SET: OK GET welcome: Hello, DCS for Redis!
Se um erro for relatado, indicando que os arquivos de biblioteca do hireis não podem ser encontrados, execute os seguintes comandos para copiar arquivos relacionados para os diretórios do sistema e adicionar links 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
Substitua os locais dos arquivos so e .h com os reais antes de executar os comandos.
- Edite o código de exemplo para conexão a uma instância de DCS e salve o código e saia.