您的位置:首页 > 数据库 > Redis

redis使用(四):C 同步接口

2016-02-05 17:06 591 查看
一.安装hredis

redis的源码

下载,解压后,默认安装路径是/usr/local ,(也可以修改Makefile中的变量 DESTDIR PREFIX来设置安装路径),make&&make install 安装;

二,测试同步接口

test.c:


#include<stdio.h>
#include<hiredis/hiredis.h>

#define REDIS_SERVER_IP "x.x.x.x"
#define REDIS_SERVER_PORT 6379

const char* command_set = "set teststr testvalue";
const char* command_get = "get teststr";

void print_reply(const char* cmd, const redisReply* reply){
int i = 0;
switch(reply->type){
case REDIS_REPLY_STATUS:
printf("cmd:%s, reply:%s\n", cmd, reply->str);
break;
case REDIS_REPLY_ERROR:
printf("cmd:%s, reply:%s\n", cmd, reply->str);
break;
case REDIS_REPLY_INTEGER:
printf("cmd:%s, reply:%lld\n", cmd,  reply->integer);
break;
case REDIS_REPLY_NIL:
printf("cmd:%s, reply:nil\n", cmd);
break;

case REDIS_REPLY_STRING:
printf("cmd:%s, reply:%s\n", cmd, reply->str);
break;
case REDIS_REPLY_ARRAY:
printf("cmd:%s, reply:\n", cmd);
for(i = 0; i < reply->elements; ++i)
{
print_reply(cmd, reply->element[i]);
}
break;
default:
printf("unknown type:%d \n", reply->type);
break;
}
}
void test(){
redisReply* r = NULL;
redisContext* c = redisConnect("10.3.1.200", 6379);

if(NULL == c || c->err){
redisFree(c);
printf("connect redis server failed !");
}

//exec set command
r = (redisReply*) redisCommand(c, command_set);

if(NULL==r){
printf("exe c cmd:%s failed !\n", command_set);
}
print_reply(command_set, r);
freeReplyObject(r);

//exec get command
r = (redisReply*) redisCommand(c, command_get);

if(NULL==r){
printf("exe c cmd:%s failed !\n", command_get);
}

print_reply(command_get, r);
freeReplyObject(r);

redisFree(c);
printf("test over\n");

return;
}

int main()
{
test();
return 0;
}


Makefile:


all:test.c
gcc -o test test.c -I/redis_dir/include -L/redis_dir/lib -lhiredis


测试结果:


$ ./test
cmd:set teststr testvalue, reply:OK
cmd:get teststr, reply:testvalue
test over
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: