zoukankan      html  css  js  c++  java
  • 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了解完毕,接下来就可以在其他模块中调用了。

  • 相关阅读:
    第5.3课.多输入之多线程和fork
    第5.2课多输入之select
    第5.1课,多输入之轮询
    第4课.编写通用的Makefile
    第3课.电子书框架
    2.3freetype矢量字体
    建立u-boot,内核的SI工程
    2.1/2.2字符的编码方式及显示
    1.0数码相框框架分析
    [数据结构]一些有意思题目(一)
  • 原文地址:https://www.cnblogs.com/henryliublog/p/9219689.html
Copyright © 2011-2022 走看看