当前位置: 首页 > 工具软件 > credis for C > 使用案例 >

c语言使用redis,C/C++知识点之使用C语言客户端(hiredis)连接Redis--华为云DCS for Redis使用经验系列...

秦涵映
2023-12-01

本文主要向大家介绍了C/C++知识点之使用C语言客户端(hiredis)连接Redis--华为云DCS for Redis使用经验系列,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

hiredis是一个非常全面的C语言版redis接口库,支持所有命令、管道与脚本。华为云分布式缓存服务Redis版支持hiredis客户端连接。

使用C语言客户端(hiredis)连接Redis,需要先安装编译环境以及hiredis,以CentOS为例,介绍C客户端环境搭建。

第0步:准备工作

华为云上购买1台弹性云服务器ECS(我选了CentOS 6.3),一个分布式缓存实例(DCS for Redis),我选了个单机实例。

注意ECS和缓存实例配置相同的VPC和安全组,确保网络互通。

第1步:安装gcc、make和hiredis

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

yum install gcc make

下载并解压hiredis

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

进入到解压目录后编译安装

make

make install

安装完成后即可尝试连接。

第2步:连接Redis

关于hiredis的使用,redis官网给了详细的使用介绍。这里举一个简单的例子,介绍连接、密码鉴权、set以及get方法。

编辑连接demo实例,如:

vim connRedis.c

#include 

#include 

#include 

#include 

int main(int argc, char **argv) {

unsigned int j;

redisContext *conn;

redisReply *reply;

if (argc 

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,

测试以下命令测试连接:

./connRedis {redis_ip_address} 6379 {password}

得到以下回显,则demo正常运行:

[root@ecs-herucentos heru]#  ./connRedis 192.168.0.171 6379 Heru+123

AUTH: OK

SET: OK

GET welcome: Hello, DCS for Redis!

[root@ecs-herucentos heru]#

注意,如果运行报错找不到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文件的位置,需要替换成实际文件位置。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

 类似资料: