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. sendEmail 阿里云使用587端口

    使用sendEmail使用参数   -o tls=yes -s smtp服务器+端口 因为阿里云屏蔽了25端口,我使用465也不成功,只有使用587端口,我使用的qq企业邮箱,测试可用

  2. asp.net MVC5为WebAPI添加命名空间的支持

    前言 默认情况下,微软提供的MVC框架模板中,WebAPI路由是不支持Namespace参数的.这导致一些比较大型的项目,无法把WebApi分离到单独的类库中. 本文将提供解决该问题的方案. 微软官方 ...

  3. BZOJ1396 识别子串 字符串 SAM 线段树

    原文链接http://www.cnblogs.com/zhouzhendong/p/9004467.html 题目传送门 - BZOJ1396 题意 给定一个字符串$s$,$|s|\leq 10^5$ ...

  4. 数据特征分析:3.统计分析 & 帕累托分析

    1.统计分析 统计指标对定量数据进行统计描述,常从集中趋势和离中趋势两个方面进行分析 集中趋势度量 / 离中趋势度量 One.集中趋势度量 指一组数据向某一中心靠拢的倾向,核心在于寻找数据的代表值或中 ...

  5. 使用json web token

    由来 做了这么长时间的web开发,从JAVA EE中的jsf,spring,hibernate框架,到spring web MVC,到用php框架thinkPHP,到现在的nodejs,我自己的看法是 ...

  6. Python Enum 枚举 用法汇总

    Python Enum 枚举 用法汇总 import os import sys if sys.version_info.major + sys.version_info.minor * 0.1 &l ...

  7. 3dsmax不同版本 pyside qt UI 设置max窗口为父窗口的方法

    3dsmax不同版本 pyside qt widget 设置 max 窗口为父窗口的方法 前言: 3dsmax 在 2014 extension 之后开始集成 Python 和 PySide,但是在版 ...

  8. mysql group by组内排序

    mysql group by组内排序:     首先是组外排序:     SELECT z.create_time,z.invoice_id from qf_invoice_log z where z ...

  9. poj-1287 Networking(Prim)

    题目链接:http://poj.org/problem?id=1287 题目描述: 请先参考关于prim算法求最小生成树的讲解博客:https://www.cnblogs.com/LJHAHA/p/1 ...

  10. Java 之 Web前端(一)

    1.http a.定义:超文本传输协议 b.作用:web服务器与web浏览器之间通信 c.步骤: ①客户端与web服务器建立连接(IP地址与端口号) ②客户端发送http请求(请求资源路径) ③服务器 ...