hiredis 使用 linux c++

1、linux下如何安装hiredis
1)下载地址
 https://github.com/redis/hiredis
2)编译和安装
解压后的文件夹执行 make;make install;
3)头文件包含
include <hiredis/hiredis.h>
4)编译选项
makefile文件中加入    LDFLAGS = -lhiredis
2、主要结构
主要关注2个结构体,
1)redisContext

  1.   /* Context for a connection to Redis */  
  2. typedef struct redisContext {  
  3.     int err; /* Error flags, 0 when there is no error */  
  4.     char errstr[128]; /* String representation of error when applicable */  
  5.     int fd;  
  6.     int flags;  
  7.     char *obuf; /* Write buffer */  
  8.     redisReader *reader; /* Protocol reader */  
  9.     enum redisConnectionType connection_type;  
  10.     struct timeval *timeout;  
  11.     struct {  
  12.         char *host;  
  13.         char *source_addr;  
  14.         int port;  
  15.     } tcp;  
  16.     struct {  
  17.         char *path;  
  18.     } unix_sock;  
  19. } redisContext;  

2)redisReply

 
  1. /* This is the reply object returned by redisCommand() */  
  2. typedef struct redisReply {  
  3.     int type; /* REDIS_REPLY_* */  
  4.     long long integer; /* The integer when type is REDIS_REPLY_INTEGER */  
  5.     int len; /* Length of string */  
  6.     char *str; /* Used for both REDIS_REPLY_ERROR and REDIS_REPLY_STRING */  
  7.     size_t elements; /* number of elements, for REDIS_REPLY_ARRAY */  
  8.     struct redisReply **element; /* elements vector for REDIS_REPLY_ARRAY */  
  9. } redisReply;  

2、主要接口
主要有4个接口,
1)redisContext* redisConnect(const char *ip, int port)
   //连接redis。
2)void *redisCommand(redisContext *c, const char *format, ...);
   //执行redis操作命令
3)void freeReplyObject(void *reply);
   //释放执行redis操作命令回复的内存
4)void redisFree(redisContext *c);

   //释放连接上下文。

3、异常处理
主要4种异常情况会出现,
1)获得的redisContext指针为null
   异常处理办法:再次尝试与redis建立新的连接上下文。
2)获得的redisContext指针err不为0
   异常处理办法:再次尝试与redis建立新的连接上下文。
3)获得的redisReply指针为null
   异常处理办法:断开redis连接再次与redis建立连接并尝试执行命令。
4)获得的reply指针的type不是期望的类型,
   异常处理办法:断开redis连接再次与redis建立连接并尝试执行命令。
至此hiredis了解完毕,接下来就可以在其他模块中调用了。

转载于:https://www.cnblogs.com/henryliublog/p/9219689.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值