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了解完毕,接下来就可以在其他模块中调用了。

hiredis 使用 linux c++的更多相关文章

  1. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  2. Linux 下的hiredis的简单安装、测试*(转)

    上一章介绍的是如何安装Redis以及在Redis客户端上进行简单测试,但是我们一般安装完Redis之后,都是要结合编程语言对其进行应用的,hiredis是redis开源库对外发布的客户端API包,这一 ...

  3. redis3.0.6安装(linux和windows)

    官网上描述安装方法如下:$ wget http://download.redis.io/releases/redis-3.0.6.tar.gz$ tar xzf redis-3.0.6.tar.gz$ ...

  4. Redis介绍——Linux环境Redis安装全过程和遇到的问题及解决方案

    一:redis的入门介绍: 首先贴出官网; 英文:https://redis.io/ 中文:http://www.redis.cn/ 1.是什么 --REmote DIctionary Server( ...

  5. redis C接口hiredis 简单函数使用介绍

    hiredis是redis数据库的C接口,目前只能在linux下使用,几个基本的函数就可以操作redis数据库了. 函数原型:redisContext *redisConnect(const char ...

  6. linux系统下安装单台Redis

    注意:搭建redis前一定要安装gcc redis安装方式一 1.安装gcc命令:yum install -y gcc #安装gcc [root@localhost src]# yum install ...

  7. hiredis异步接口封装并导出到Lua

    hiredis异步接口封装并导出到Lua(金庆的专栏 2017.1)hiredis 不支持 Windows, Windows 下使用 wasppdotorg / hiredis-for-windows ...

  8. hiredis的各种windows版本

    hiredis的各种windows版本(金庆的专栏 2016.12)hiredis 是内存数据库 redis 的客户端C库, 不支持Windows.hiredis的Windows移植版本有许多:des ...

  9. Redis~Linux环境下的部署

    回到目录 Redis的生产环境建议部署到linux上,而在开发时可以连接windows版本,下面介绍如何在linux上部署redis. $ wget http://download.redis.io/ ...

随机推荐

  1. ElementLayer support not implemented for native rendering. Layer ID:

    在 arcgis runtime for wpf 添加标注闪烁动画时(实现方法参考:http://blog.csdn.net/arcgisserver_book/article/details/805 ...

  2. Centos安装Samba共享服务器

    安装Samba 查看Samba是否已安装 1.# rpm -qa | grep samba

  3. jquery 计算两个日期相差的天数

    <!DOCTYPE html> <html> <head> <meta charset = "utf-8"> <title&g ...

  4. YII框架增删改查常用语句

    //实例化db $db = new \yii\db\Query(); //插入 $db->createCommand()->insert('user', [ 'name' => 't ...

  5. BZOJ4802 欧拉函数 数论

    原文链接http://www.cnblogs.com/zhouzhendong/p/8117744.html 题目传送门 - BZOJ4802 题意概括 Description 已知N,求phi(N) ...

  6. 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

    该题还是考杨辉三角计算,只不过最后每一行都放入List集合中,然后返回,直接看代码: public static List<List<Integer>> generate(in ...

  7. Http和RPC区别

    本文转自:https://blog.csdn.net/mou_it/article/details/79873612 RPC(即Remote Procedure Call,远程过程调用)和HTTP(H ...

  8. day 50 js-part1基础语法,数据类型及用法,流程控制语句,循环

    js基本概念: JavaScript 是世界上最流行的脚本语言. JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. JavaScript ...

  9. ESP8266基础篇

    ESP8266基础篇 模块刚到如图所示~2016-01-26 后三张是手机APP的截图,前面是两个ESP8266的硬件模块,当然大家不应定要买两个,自己焊锡一个USB转TTL的串口就行了,有了下面的底 ...

  10. miniui表格load数据成功后,回调函数,其中setData要用如下方法

    init: function () { mini.parse(); this.grid = mini.get("jsDatagrid"); var grid1 = mini.get ...