更新时间:2023-12-06 gmt 08:00
通过hiredis连接实例-凯发k8国际娱乐官网入口
本章节主要介绍使用hiredis访问geminidb redis实例的方法。
前提条件
- 已成功创建geminidb redis实例,且实例状态正常。创建geminidb redis实例的方法请参见购买实例(集群版)。
- 已创建弹性云服务器,创建弹性云服务器的方法,请参见《弹性云服务器快速入门》中“”章节。
- 弹性云服务器上已经安装gcc等编译工具。
- 创建的弹性云服务器与geminidb redis实例要保证区域、可用区、vpc和安全组一致。
操作步骤
- 获取geminidb redis实例的负载均衡地址和端口。
- 负载均衡地址的查看方法请参见。
- 端口的获取方法请参见。
- 登录弹性云服务器,具体操作请参见《弹性云服务器快速入门》中“”。
- 使用如下命令,下载并解压hiredis。
wget https://github.com/redis/hiredis/archive/master.zip
- 进入到解压目录后编译安装hiredis。
make
make install
- 编写测试代码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; } - 执行如下命令进行编译。
gcc connredis.c -o connredis -i /usr/local/include/hiredis -lhiredis
如果有报错,可查找hiredis.h文件路径,并修改编译命令。
编译完后得到一个可执行文件connredis。
- 执行如下命令,连接geminidb redis实例。
export ld_library_path=/usr/local/lib/:$ld_library_path
./connredis
8635 其中,以下信息需按照实际情况进行替换:
为1中获取到的geminidb redis实例的负载均衡地址。 - “8635”为geminidb redis实例的端口。
为创建geminidb redis实例时自定义的密码。
- 返回如下回显信息,表示成功连接geminidb redis实例。
auth: ok set: ok get key: hello, hiredis test ok!
父主题:
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨