Redis C语言

来源:互联网 发布:2015十大网络歌曲 编辑:程序博客网 时间:2024/06/06 02:32

1. Redis安装

wget http://download.redis.io/releases/redis-3.0.3.tar.gz$ tar xzf redis-3.0.3.tar.gz$ cd redis-3.0.3$ make
参考链接http://www.redis.io/download


2. Hiredis安装

从https://github.com/redis/hiredis/releases/tag/v0.13.1下载

$ make
参考链接https://redislabs.com/hiredis


3.C 客户端(网上例子)

#include <stdio.h>  #include <stdlib.h>  #include <stddef.h>  #include <stdarg.h>  #include <string.h>  #include <assert.h>  #include <hiredis/hiredis.h>    void doTest()  {      //redis默认监听端口为6387 可以再配置文件中修改      redisContext* c = redisConnect("127.0.0.1", 6379);      if ( c->err)      {          redisFree(c);          printf("Connect to redisServer faile\n");          return ;      }      printf("Connect to redisServer Success\n");            const char* command1 = "set stest1 value1";      redisReply* r = (redisReply*)redisCommand(c, command1);            if( NULL == r)      {          printf("Execut command1 failure\n");          redisFree(c);          return;      }      if( !(r->type == REDIS_REPLY_STATUS && strcasecmp(r->str,"OK")==0))      {          printf("Failed to execute command[%s]\n",command1);          freeReplyObject(r);          redisFree(c);          return;      }         freeReplyObject(r);      printf("Succeed to execute command[%s]\n", command1);            const char* command2 = "strlen stest1";      r = (redisReply*)redisCommand(c, command2);      if ( r->type != REDIS_REPLY_INTEGER)      {          printf("Failed to execute command[%s]\n",command2);          freeReplyObject(r);          redisFree(c);          return;      }      int length =  r->integer;      freeReplyObject(r);      printf("The length of 'stest1' is %d.\n", length);      printf("Succeed to execute command[%s]\n", command2);                  const char* command3 = "get stest1";      r = (redisReply*)redisCommand(c, command3);      if ( r->type != REDIS_REPLY_STRING)      {          printf("Failed to execute command[%s]\n",command3);          freeReplyObject(r);          redisFree(c);          return;      }      printf("The value of 'stest1' is %s\n", r->str);      freeReplyObject(r);      printf("Succeed to execute command[%s]\n", command3);            const char* command4 = "get stest2";      r = (redisReply*)redisCommand(c, command4);      if ( r->type != REDIS_REPLY_NIL)      {          printf("Failed to execute command[%s]\n",command4);          freeReplyObject(r);          redisFree(c);          return;      }      freeReplyObject(r);      printf("Succeed to execute command[%s]\n", command4);                     redisFree(c);        }    int main()  {      doTest();      return 0;  } 

Makefile

LIBDIR= -L/usr/local/lib        LIBSO = -lhiredis        CFLAG = -Wall -gall:txtx:tx.o        g++ ${CFLAG} -o $@ $< ${LIBDIR} ${LIBSO}%.o%.c:        g++ -c -o $@ $^clear:        rm -f *.o
或者命令: g++ -o tx tx.cpp libhiredis.a


运行:./tx

[root@localhost hiredis]# ./tx
Connect to redisServer Success
Succeed to execute command[set stest1 value1]
The length of 'stest1' is 6.
Succeed to execute command[strlen stest1]
The value of 'stest1' is value1
Succeed to execute command[get stest1]
Succeed to execute command[get stest2]

0 0
原创粉丝点击