上一章介绍的是如何安装Redis以及在Redis客户端上进行简单测试,但是我们一般安装完Redis之后,都是要结合编程语言对其进行应用的,hiredis是redis开源库对外发布的客户端API包,这一章将讲解如何安装hiredis以及编写简单的测试程序进行测试。
首先进入hiredis官网进行包的下载:
进入到下载页面,点击最新版本的tar.gz包进行下载,接下来的过程和安装Redis完全一样
1、解压:tar -zxvf hiredis-0.13.3.tar.gz
2、编译:make
3、安装:make install
4、新建一个文件夹RedisTest:mkdir RedisTest
5、新建一个RedisTest.c文件:vim RedisTest.c
6、在此文件中输入相关代码:
#include <stdio.h>
#include <hiredis/hiredis.h>
int main()
{
redisContext *conn = redisConnect("127.0.0.1",6379);
if(conn != NULL && conn->err)
{
printf("connection error: %s\n",conn->errstr);
return 0;
}
redisReply *reply = (redisReply*)redisCommand(conn,"set foo 1234");
freeReplyObject(reply); reply = redisCommand(conn,"get foo");
printf("%s\n",reply->str);
freeReplyObject(reply); redisFree(conn);
return 0;
}
官网上面也有较为详细的教程:
执行编译命令:gcc -o RedisTest RedisTest.c -L/usr/local/lib/ -lhiredis
得到可运行文件RedisTest,输入指令:./RedisTest,运行该文件得到结果:1234
如果遇到:error while loading shared libraries: libhiredis.so.0.13: cannot open shared object file: No such file or directory这样的错误,即动态库无法加载,我们可以这样做:
1、在/etc/ld.so.conf.d/目录下添加usr-libs.conf文件:vim /etc/ld.so.conf.d/usr-libs.conf
2、在文件中添加内容:/usr/local/lib
3、退出文本编译::wq
4、更新动态库配置:/sbin/ldconfig
补:如果是在eclipse平台进行代码编译与运行,那么上述测试代码在编译阶段可能出现如下错误:
只要把代码:
reply = redisCommand(conn,"get foo");
替换成:
reply = (redisReply*)redisCommand(conn,"get foo");
就可以了
如果出现如下错误:
undefined reference to `redisConnect'
undefined reference to `redisCommand'
undefined reference to `freeReplyObject'
undefined reference to `redisCommand'
undefined reference to `freeReplyObject'
undefined reference to `redisFree'
则右键项目->Properties->C/C++ Build->Settings->Tool Settings->Libraries,添加Libraries:
在弹出窗口输入hiredis并确定
操作完成之后,目录下出现hiredis库:
重新编译之后,编译成功:
运行得到结果:1234
Linux 下的hiredis的简单安装、测试*(转)的更多相关文章
-
linux下jenkins学习之简单安装
前提:安装包从官网获取https://pkg.jenkins.io/redhat-stable/jenkins-2.7.4-1.1.noarch.rpm 1.在线下载 Sudo -O wget htt ...
-
linux下各安装包的安装方法
<转>linux下各安装包的安装方法 一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root ...
-
linux下搭建lamp环境以及安装swoole扩展
linux下搭建lamp环境以及安装swoole扩展 一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源 我安装的环境是:apache2.2.15+mysql5 ...
-
(转)linux下weblogic12c集群的安装部署
本文介绍linux下weblogic12c集群的安装部署,版本12c,其他版本操作会有所不同,但其大体操作基本都是一样的 关于weblogic的集群,在此就不多做介绍了,如果有不了解的朋友可以百度搜索 ...
-
Linux下通过源码编译安装程序
本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识.(大神勿喷^_^) 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件: ...
-
Linux下非root用户如何安装软件
Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...
-
Linux下tomcat6.0与jdk安装
Linux下tomcat6.0与jdk安装 步骤如下: 1. 上传apache-tomcat-6.0.37.tar.gz和jdk-6u13-linux-i586.bin至/usr/local 给这两个 ...
-
linux下Redis与phpredis扩展安装
++++++++++++++++++++++++++++++++++++++++++++++linux下Redis与phpredis扩展安装++++++++++++++++++++++++++++++ ...
-
LINUX下中文语言包的安装(转)
在安装盘上已经有各种语言包了,我们只需要找到他们,并安装就可以了.中文的是fonts-chinese-3.02-9.6.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0- ...
随机推荐
-
Hdu 2955 Robberies 0/1背包
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
-
杂谈:HTML 5页面可视性API
译文来源:http://www.ido321.com/1126.html 原文:HTML5 Page Visibility API 译文:HTML 5的页面可视性API 译者:dwqs 在早期,浏览器 ...
-
PHP 判断从表单提交的值是否为空
@$time = $_GET['time'];if(empty($time)) { echo "empty";} else { echo "not empty" ...
-
python中的buildin函数详解(第一篇)
这会是很长的一个帖子,因为我打算从python最基础的东西开始,尝试去完全的掌握它,buildin中有一些常用的函数比如 abs, open, setattr, getattr, 大家都很了解他们的用 ...
-
改进《完美让IE兼容input placeholder属性的jquery实现》的不完美
<完美让IE兼容input placeholder属性的jquery实现>中的代码在IE9以下浏览器中会出错,原因是因为ie9以下的浏览器对input的标签的解释不同. 例如对以下文本框的 ...
-
__device__ __global__ __host__
__device__ 标记的函数从一个在器件中执行的函数呼叫,在器件中执行 __global__ 表示该函数从一个在主机中执行的函数呼叫,在器件中执行 __host__表示在主机中呼叫,在主机中执行的 ...
-
[js高手之路] 设计模式系列课程 - jQuery的链式调用与灵活的构造函数
一.我们从一个简单的构造函数+原型程序开始 var G = function(){}; G.prototype = { length : 5, size : function(){ return th ...
-
excel单元格内容连接
1.连接符号: & 举例子:C1= A1&B1 2.生成sql: CONCATENATE("(seq_table.nextval,sysdate, 'test',sysdat ...
-
为elasticSearch开发c++接口
一. ElasticSearch是什么 ElasticSearch是目前开源全文搜索引擎的首选,可以快速存储,搜索和分析海量数据.Stack Overflow,Github等都在使用. Elas ...
-
CAD批量合并文件
要求:将整饰完成504幅单独的宗地图合并成一张总图,合并后,去掉其他要素,只保留毕合的权属线. 解决: 1.合并dwg文件,除了手工粘贴复制外,最先想到的是插入块,即用Insert命令插入,测试结果可 ...