hiredis 源码安装和接口使用介绍

一、hiredis源码安装说明

本文创作基于 hiredis - v1.2.0版本

1.简介

  • hiredis是一个用于与Redis交互的C语言客户端库。它提供了一组简单易用的API,使开发人员可以轻松地连接到Redis服务器,并执行各种操作,如设置和获取键值对、执行命令、订阅和发布消息等。
  • hiredis的设计目标是高效性和简单性。它使用纯C语言编写,没有外部依赖,可以轻松地与任何C/C++项目集成。它具有轻量级的实现和低延迟的性能,适用于高并发的应用场景。
  • hiredis支持同步和异步的方式与Redis进行通信。同步方式是指客户端发送一个命令后会一直等待Redis的响应,直到响应返回后才继续执行下一个命令。异步方式是指客户端发送命令后可以继续执行其他任务,通过回调函数来处理Redis的响应。
  • 除了基本的Redis操作,hiredis还提供了一些高级功能,如管道操作和事务。管道操作允许一次性发送多个命令到Redis,以减少网络开销。事务可以将一系列命令打包成一个原子操作,保证它们的执行是连续的。

总之,hiredis是一个简单、高效的C语言客户端库,使开发人员可以轻松地与Redis进行交互。它适用于任何需要与Redis集成的C/C++项目,并且具有良好的性能和灵活性。

2.下载源码

hiredis官网:https://redis.io/lp/hiredis/
hiredis github:https://github.com/redis/hiredis/releases

3.安装说明

# 下载软件包,解压并移动目标位置
[root@Ali ~]# wget https://github.com/redis/hiredis/archive/refs/tags/v1.2.0.tar.gz
[root@Ali ~]# tar xzvf v1.2.0.tar.gz
[root@Ali ~]# mv hiredis-1.2.0 /usr/local/redis/hiredis

# 安装依赖
[root@Ali hiredis]# yum install openssl-devel -y

# 编译安装 hiredis
[root@Ali hiredis]# make
[root@Ali hiredis]# make install
mkdir -p /usr/local/include/hiredis /usr/local/include/hiredis/adapters /usr/local/lib
cp -pPR hiredis.h async.h read.h sds.h alloc.h sockcompat.h /usr/local/include/hiredis
cp -pPR adapters/*.h /usr/local/include/hiredis/adapters
cp -pPR libhiredis.so /usr/local/lib/libhiredis.so.1.1.0
cd /usr/local/lib && ln -sf libhiredis.so.1.1.0 libhiredis.so && ln -sf libhiredis.so.1.1.0 libhiredis.so.1
cp -pPR libhiredis.a /usr/local/lib
mkdir -p /usr/local/lib/pkgconfig
cp -pPR hiredis.pc /usr/local/lib/pkgconfig

可以看到,make install成功后:

  • hiredis头文件 安装放在/usr/local/include/hiredis
  • 库文件放在 /usr/local/lib/ 目录下 adapters

注意

  • 使用上述编译生成的so不支持SSL,若想支持SSL需要再编译增加USE_SSL=1参数,如:make USE_SSL=1 && make install USE_SSL=1 【参考 hiredis-README

二、hiredis 使用说明

值得说明的是:hiredis支持 同步异步 两种调用方式。无论同步还是异步,使用hiredis 基本流程都是以下三个步骤:

  1. 使用 redisConnect 连接数据库
  2. 使用 redisCommand 执行命令
  3. 释放对象: 使用 freeReplyObject 释放 redisReply 对象,使用 redisFree 来释放redisContext

1. 简单示例

本小节以一个最简单的 同步API调用 示例,帮助读者建立API使用的整体过程。

一个最简单的API调用为例,至少需要引入以下几个函数:

/* 创建一个redis链接,并返回一个redis上下文 */
redisContext *redisConnect(const char *ip, int port);

/* 执行redis操作命令 */
void *redisCommand(redisContext *c, const char *format, ...);
void *redisCommandArgv(redisContext *c, int argc, const char **argv, const size_t *argvlen);
void redisAppendCommand(redisContext *c, const char *format, ...);
void redisAppendCommandArgv(redisContext *c, int argc, const char **argv, const size_t *argvlen);

/*释放资源*/
void freeReplyObject(void *reply);
void redisFree(redisContext *c);

示例代码:

#include <stdio.h>
#include <string.h>
#include <hiredis/hiredis.h>

int main(){
   
    redisReply *lpReply = nullptr;
    redisContext *lpContext = nullptr;

    /* 创建一个redis链接 */
    lpContext = redisConnect("127.0.0.1", 6379);
    if (lpContext == NULL || lpContext->err) {
   
        if (lpContext) {
   
            printf("Error: %s\n", lpContext->errstr);
            // handle error
        } else {
   
            printf("Can't allocate redis context\n"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值