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

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    hiredis 使用 linux c++

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/276542

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 上午1:49
下一篇 2023年2月15日 上午1:49

相关推荐