更新时间:2023-12-06 gmt 08:00

通过hiredis连接实例-凯发k8国际娱乐官网入口

本章节主要介绍使用hiredis访问geminidb redis实例的方法。

前提条件

  • 已成功创建geminidb redis实例,且实例状态正常。创建geminidb redis实例的方法请参见购买实例(集群版)
  • 已创建弹性云服务器,创建弹性云服务器的方法,请参见《弹性云服务器快速入门》中“”章节。
  • 弹性云服务器上已经安装gcc等编译工具。
  • 创建的弹性云服务器geminidb redis实例要保证区域、可用区、vpc和安全组一致。

操作步骤

  1. 获取geminidb redis实例的负载均衡地址和端口。
    • 负载均衡地址的查看方法请参见。
    • 端口的获取方法请参见。
  2. 登录弹性云服务器,具体操作请参见《弹性云服务器快速入门》中“”。
  3. 使用如下命令,下载并解压hiredis。

    wget https://github.com/redis/hiredis/archive/master.zip

  4. 进入到解压目录后编译安装hiredis。

    make

    make install

  5. 编写测试代码connredistst.cc。

    关于hiredis的详细用法,请参考的使用介绍。

    代码如下:

    #include 
    #include 
    #include 
    #include 
    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", "key", "hiredis test ok!");
         printf("set: %s\n", reply->str);
         freereplyobject(reply);
     
         /* get */
         reply = rediscommand(conn,"get key");
         printf("get key: %s\n", reply->str);
         freereplyobject(reply);
     
         /* disconnects and frees the context */
         redisfree(conn);
         return 0;
    }
  6. 执行如下命令进行编译。

    gcc connredis.c -o connredis -i /usr/local/include/hiredis -lhiredis

    如果有报错,可查找hiredis.h文件路径,并修改编译命令。

    编译完后得到一个可执行文件connredis。

  7. 执行如下命令,连接geminidb redis实例。

    export ld_library_path=/usr/local/lib/:$ld_library_path

    ./connredis 8635

    其中,以下信息需按照实际情况进行替换:

    • 1中获取到的geminidb redis实例的负载均衡地址。
    • “8635”geminidb redis实例的端口。
    • 为创建geminidb redis实例时自定义的密码。
  8. 返回如下回显信息,表示成功连接geminidb redis实例。
    auth: ok
    set: ok
    get key: hello, hiredis test ok!
分享:
网站地图