使用hiredis接口(Synchronous API)编写redis客户端
本文主要介绍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客户端相关推荐
- 一文彻底理解Redis序列化协议,你也可以编写Redis客户端
前提 最近学习Netty的时候想做一个基于Redis服务协议的编码解码模块,过程中顺便阅读了Redis服务序列化协议RESP,结合自己的理解对文档进行了翻译并且简单实现了RESP基于Java语言的解析 ...
- hiredis(Synchronous API)
hiredis是一个小型的client端的c库.它只增加了最小对协议的支持,同时它用一个高级别的printf-alike API为了绑定各种redis命令.除了支持发送和接收命令,它还支持对流的解析. ...
- [编写高质量iOS代码的52个有效方法](五)接口与API设计(下)
[编写高质量iOS代码的52个有效方法](五)接口与API设计(下) 参考书籍:<Effective Objective-C 2.0> [英] Matt Galloway 先睹为快 19. ...
- java redis 命令_命令界面:使用Java中的动态API处理Redis
java redis 命令 Redis是一个数据存储,支持190多个文档化命令和450多个命令排列. 社区积极支持Redis开发: 每个主要的Redis版本都附带新命令. 今年,Redis向第三方供应 ...
- 命令界面:使用Java中的动态API处理Redis
Redis是一个数据存储,支持190多个已记录命令和450多个命令排列. 社区积极支持Redis开发: 每个主要的Redis版本都附带新命令. 今年,Redis向第三方供应商开放,以开发可扩展Redi ...
- 服务端朋友圈接口代码的编写和理解
前期准备...... 1.通常我们在IDEA中建立两个包 2. 我们主要用Postman对朋友圈各种接口调用的实现做接口测试 3. 测试接口我们主要用下面几种请求方式: > GET ...
- 闲谈Redis客户端Lettuce
简介 Lettuce是一个高性能基于Java编写的Redis驱动框架,底层集成了Project Reactor提供天然的反应式编程,通信框架集成了Netty使用了非阻塞IO,5.x版本之后融合了JDK ...
- 接口responsecode返回500_springboot+redis+Interceptor+annotation实现接口自动幂(989)
前言: 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同.按照这个含义,最终的含义就是 对数据库的影响只能是一次性的 ...
- RESTful API 编写规范
基于一些不错的RESTful开发组件,可以快速的开发出不错的RESTful API,但如果不了解开发规范的.健壮的RESTful API的基本面,即便优秀的RESTful开发组件摆在面前,也无法很好的 ...
- DotNetCore三大Redis客户端对比和使用心得
前言 稍微复杂一点的互联网项目,技术选型都会涉及Redis,.NetCore的生态越发完善,支持.NetCore的Redis客户端越来越多, 下面三款常见的Redis客户端,相信大家平时或多或少用到一 ...
最新文章
- 转: windows系统下mysql出现Error 1045(28000) Access Denied for user 'root'@'localhost'
- Java基础系列——IO流
- 在linux系统安装R及rstudio
- C# WPF:初识布局容器
- SpringCloud Ribbon之概述(一)
- Java使用Openimaj构建视觉词袋模型
- 你真的了解“真的了解”的含义吗
- XCode 遇到的问题
- 【Go语言入门教程】Go语言简介
- wps word与office word相比的优缺点
- 滚动电梯卡延期复制教学
- VMware ESXi 6.7注入第三方RAID驱动
- 小储云商城v1.873源码(已更新)
- 最早的动态图匹配代表性算法-邻接点树(NNT)
- 记忆就是记忆!!不要深究!
- (信号灯七)综合版本-使用HSV颜色空间将类绿色、红色和黄色区域分别二值化
- windows phone水平滑动翻页动画效果
- 咕泡java架构师二期网盘_咕泡学院java架构师VIP3期
- android水平波浪扩散动画,Android实现水波纹扩散效果
- 运营笔记:老板最不关心的就是微信公众号外包报价表!