hiredis的介绍
Hiredis 是一个用于 C 语言的轻量级、高性能的 Redis 客户端库。它提供了一组简单易用的 API,用于与 Redis 数据库进行交互。Hiredis 支持 Redis 的所有主要功能,包括字符串、哈希、列表、集合、有序集合等数据结构的读写操作,以及发布订阅、事务和管道等高级功能。
Hiredis 设计简洁,代码轻量,且具有很高的性能。它被广泛用于开发需要与 Redis 数据库进行交互的 C 语言项目,可以帮助开发者轻松快捷地利用 Redis 的强大功能。同时,Hiredis 也提供了一系列的命令行工具,用于方便地测试和验证与 Redis 的连接和操作。
总而言之,Hiredis 是一个简单、高效的 C 语言 Redis 客户端库,适用于需要在 C 语言项目中与 Redis 进行交互的开发者。
hiredis的安装
在redis的发行包中的deps目录包含hiredis的源码,手动编译安装;
cd /deps/hiredis
make
make install
但是上述方法会出现一些错误
需要进入hiredis目录进行安装
第二种方法,在github下载安装,网址:
开启redis
redis-server redis.conf
redis-cli
使用make test进行测试
测试hiredis
#include <iostream>
#include <hiredis/hiredis.h>
int main() {
// 创建一个Redis连接对象
redisContext *c = redisConnect("127.0.0.1", 6379);
if (c == NULL || c->err) {
if (c) {
std::cout << "Error: " << c->errstr << std::endl;
// handle error, close connection, etc.
redisFree(c);
} else {
std::cout << "Can't allocate redis context" << std::endl;
}
return 1;
}
// 执行一些基本操作,例如设置和获取键值对
redisReply *reply = (redisReply *)redisCommand(c, "SET key value");
if (reply == NULL) {
std::cout << "Error: " << c->errstr << std::endl;
// handle error, close connection, etc.
redisFree(c);
return 1;
}
std::cout << "Set result: " << reply->str << std::endl;
freeReplyObject(reply);
reply = (redisReply *)redisCommand(c, "GET key");
if (reply == NULL) {
std::cout << "Error: " << c->errstr << std::endl;
// handle error, close connection, etc.
redisFree(c);
return 1;
}
std::cout << "Get result: " << reply->str << std::endl;
freeReplyObject(reply);//释放reply指向的结构体防止内存泄漏
// 释放Redis连接对象
redisFree(c);
return 0;
}
编译
g++ hiredis_test.cpp -o a -lhiredis
出现错误
./a: error while loading shared libraries: libhiredis.so.1.0.0: cannot open shared object file: No such file or directory
解决方法
首先使用vim打开/etc/ld.so.conf
加入动态库文件所在的目录在“include ld.so.conf.d/*.conf下方增加/usr/local/lib”
最重要的一步,运行ldconfig使所有库文件都被缓存到文件/etc/ld.so.cache中
编译运行程序得到结果
查看redis