添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 已成功创建Redis实例,且状态为“运行中”。创建Redis实例的操作请参考 购买Redis实例
  • 已创建弹性云服务器,创建弹性云服务器的方法,请参见 购买弹性云服务器
  • 如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装gcc编译环境。
  • 连接实例前确保客户端与Redis实例之间网络互通,具体请参考 连接Redis网络要求
  • Hiredis客户端连接Redis

  • 查看并获取待连接Redis实例的IP地址/域名和端口。

    具体步骤请参见 查看和修改DCS实例基本信息

  • 登录弹性云服务器。

    本章节以弹性云服务器操作系统为centos为例介绍通过C++ redis客户端连接实例。

  • 安装gcc、make和hiredis。

    如果系统没有自带编译环境,可以使用yum方式安装。

    yum install gcc make
  • 下载并解压hiredis。
    wget https://github.com/redis/hiredis/archive/master.zip
    unzip master.zip
  • 进入到解压目录后编译安装。 make install
  • 使用hiredis客户端连接Redis实例。

    关于hiredis的使用,请参考redis官网的使用介绍。这里举一个简单的例子,介绍连接、密码鉴权等的使用。

  • 编辑连接Redis实例的demo示例,然后保存退出。
    vim connRedis.c

    示例内容如下:

    #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;
         
  • 执行以下命令进行编译。
    gcc connRedis.c -o connRedis  -I /usr/local/include/hiredis -lhiredis

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

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

  • 执行以下命令,连接Redis实例。
    ./connRedis {redis_instance_address} 6379 {password}

    其中,{redis_instance_address}为Redis实例的IP地址/域名,“6379”为Redis实例的端口。IP地址/域名和端口获取见1,请按实际情况修改后执行。{password}为创建Redis实例时自定义的密码,请按实际情况修改后执行。

    返回以下回显信息,表示成功连接Redis实例。

    AUTH: OK
    SET: OK
    GET welcome: Hello, DCS for Redis!
  • 如果运行报错找不到hiredis库文件,可参考如下命令,将相关文件复制到系统目录,并增加动态链接。

    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

    以上so文件与.h文件的位置,需要替换成实际文件位置。

  •