本文主要介绍hiredis的相关知识,以及使用hiredis接口(Synchronous API)编写redis客户端的方法。

1. hiredis概述

源自github上的描述:

Hiredis is a minimalistic C client library for the Redis database.

2. demo编写

使用hiredis的Synchronous API接口编写redis的客户端,通常需要调用以下几个函数:

redisContext *redisConnect(const char *ip, int port);          // 建立redis连接
void *redisCommand(redisContext *c, const char *format, ...);  // 执行redis命令
void freeReplyObject(void *reply);                             // 释放redis命令的返回内容

2.1 示例代码

一个完整的示例代码(hiredis_syncAPI.cpp)如下:

#include <iostream>
#include "hiredis/hiredis.h"using namespace std;int main()
{// 建立redis连接redisContext *c = redisConnect("192.168.213.133", 6379);if ((c == NULL) || (c->err)){if (c){cout << "Error: " << c->errstr << endl;// 释放redis连接redisFree(c);return -1;}else{cout << "Can't allocate redis context." << endl;return -1;}}else{cout << "Connected to Redis." << endl;}redisReply *reply;// 添加数据reply = (redisReply *)redisCommand(c, "SET zs zhanshi");cout << "SET reply is: " << reply->str << endl;freeReplyObject(reply);// 查询数据reply = (redisReply *)redisCommand(c, "GET zs");cout << "GET reply is: " << reply->str << endl;freeReplyObject(reply);// 释放redis连接redisFree(c);return 0;
}

2.2 编译redis客户端

执行下面的命令编译上述代码,生成redis客户端:

g++ -o hiredis_syncAPI hiredis_syncAPI.cpp -lhiredis

2.3 测试redis客户端

2.3.1 启动redis服务器

我们在主机(IP地址为192.168.213.133)上打开redis服务器,该redis服务器监听对于192.168.213.133的连接,如下:

[root@node1 /opt/liitdar/hiredis]# redis-server /etc/redis.conf

2.3.2 启动redis客户端

在另外一台主机(IP地址为192.168.213.131)上运行前面编译生成的redis客户端“hiredis_syncAPI”,如下:

./hiredis_syncAPI

2.3.3 观察测试结果

正常情况下,我们编写的客户端能够连接到redis服务器,并执行指定的redis命令,如下:

如果运行redis客户端的终端中出现上述信息,说明我们的编写的redis客户端运行成功了。

使用hiredis接口(Synchronous API)编写redis客户端相关推荐

  1. 一文彻底理解Redis序列化协议,你也可以编写Redis客户端

    前提 最近学习Netty的时候想做一个基于Redis服务协议的编码解码模块,过程中顺便阅读了Redis服务序列化协议RESP,结合自己的理解对文档进行了翻译并且简单实现了RESP基于Java语言的解析 ...

  2. hiredis(Synchronous API)

    hiredis是一个小型的client端的c库.它只增加了最小对协议的支持,同时它用一个高级别的printf-alike API为了绑定各种redis命令.除了支持发送和接收命令,它还支持对流的解析. ...

  3. [编写高质量iOS代码的52个有效方法](五)接口与API设计(下)

    [编写高质量iOS代码的52个有效方法](五)接口与API设计(下) 参考书籍:<Effective Objective-C 2.0> [英] Matt Galloway 先睹为快 19. ...

  4. java redis 命令_命令界面:使用Java中的动态API处理Redis

    java redis 命令 Redis是一个数据存储,支持190多个文档化命令和450多个命令排列. 社区积极支持Redis开发: 每个主要的Redis版本都附带新命令. 今年,Redis向第三方供应 ...

  5. 命令界面:使用Java中的动态API处理Redis

    Redis是一个数据存储,支持190多个已记录命令和450多个命令排列. 社区积极支持Redis开发: 每个主要的Redis版本都附带新命令. 今年,Redis向第三方供应商开放,以开发可扩展Redi ...

  6. 服务端朋友圈接口代码的编写和理解

    前期准备...... 1.通常我们在IDEA中建立两个包  2. 我们主要用Postman对朋友圈各种接口调用的实现做接口测试      3. 测试接口我们主要用下面几种请求方式: > GET ...

  7. 闲谈Redis客户端Lettuce

    简介 Lettuce是一个高性能基于Java编写的Redis驱动框架,底层集成了Project Reactor提供天然的反应式编程,通信框架集成了Netty使用了非阻塞IO,5.x版本之后融合了JDK ...

  8. 接口responsecode返回500_springboot+redis+Interceptor+annotation实现接口自动幂(989)

    前言: 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同.按照这个含义,最终的含义就是 对数据库的影响只能是一次性的 ...

  9. RESTful API 编写规范

    基于一些不错的RESTful开发组件,可以快速的开发出不错的RESTful API,但如果不了解开发规范的.健壮的RESTful API的基本面,即便优秀的RESTful开发组件摆在面前,也无法很好的 ...

  10. DotNetCore三大Redis客户端对比和使用心得

    前言 稍微复杂一点的互联网项目,技术选型都会涉及Redis,.NetCore的生态越发完善,支持.NetCore的Redis客户端越来越多, 下面三款常见的Redis客户端,相信大家平时或多或少用到一 ...

最新文章

  1. 转: windows系统下mysql出现Error 1045(28000) Access Denied for user 'root'@'localhost'
  2. Java基础系列——IO流
  3. 在linux系统安装R及rstudio
  4. C# WPF:初识布局容器
  5. SpringCloud Ribbon之概述(一)
  6. Java使用Openimaj构建视觉词袋模型
  7. 你真的了解“真的了解”的含义吗
  8. XCode 遇到的问题
  9. 【Go语言入门教程】Go语言简介
  10. wps word与office word相比的优缺点
  11. 滚动电梯卡延期复制教学
  12. VMware ESXi 6.7注入第三方RAID驱动
  13. 小储云商城v1.873源码(已更新)
  14. 最早的动态图匹配代表性算法-邻接点树(NNT)
  15. 记忆就是记忆!!不要深究!
  16. (信号灯七)综合版本-使用HSV颜色空间将类绿色、红色和黄色区域分别二值化
  17. windows phone水平滑动翻页动画效果
  18. 咕泡java架构师二期网盘_咕泡学院java架构师VIP3期
  19. android水平波浪扩散动画,Android实现水波纹扩散效果
  20. 运营笔记:老板最不关心的就是微信公众号外包报价表!

热门文章

  1. iOS Android 上传代码库+持续集成+单元测试
  2. Jmeter-阶梯场景设置
  3. 电商网站商品图片放大镜实现
  4. NTP漏洞可致Windows系统触发DoS
  5. 文本处理命令系列——cut
  6. Perl语言学习总结
  7. 学会阅读英文计算机原著
  8. linux系统快捷键使用
  9. JavaScript巧学巧用
  10. RAC性能分析 - gc buffer busy acquire 等待事件