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

一.安装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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值