VS2017 C++ 通过hiredis连接redis

这篇帖子接我的上篇帖子:VS2017下用C++调用Point Grey相机采集视频帧

应项目要求,调用相机后要将相机采集的视频按帧存储在Redis里,在网上各种帖子里奔波了一整天,感觉用C++来操作redis不是一个很常见的事儿,尤其是在windows下,因为网上比较好的帖子都是在Linux下进行的。辗转反合,搞出来了,这个过程值得记录一下。

Redis官方推荐的cpp库有很多,我首先尝试了hiredis,因为网上关于它的帖子最多,而后又试了试Redis plus pluscpp_redis,试来试去都没成功,最终还是选择了hiredis

一、Redis的安装

如何安装Redis,大家可以参考这篇帖子——超级好用的Redis安装方法 选择Zip压缩包方式下载安装。Redis安装完成后,是看不见但能摸着的,一起来摸一摸吧!

1. win + R后输入cmd;

2. 在cmd中输入以下指令,目的是进入到Redis的安装目录,如下图所示:

  • d: ——进入安装Redis的磁盘
  • cd win_redis——进入存放Redis的文件夹(我的文件夹名称是win_redis)
  • 输入 redis-server 来启动Redis服务,呈现出的结果像这样:

以上三条指令就可以启用Redis服务了,不用像我刚刚贴出的帖子里那样冗杂。

想要测试一下Redis是否成功连接,不要关掉上面这个cmd窗口,有它在Redis才可以提供服务。重新打开一个cmd,输入 redis-cli 就可以了,如图:

输入PING,得到PONG!说明成功了!

二、hiredis的编译配置

参考这篇帖子——hireds的配置 这篇帖子的大体流程是正确的,大家可以安心参考。接下来我以我的win_redis作为示例:

使用VS打开.sln文件,这是工程文件,咱们只需要它就可以,其它看起来超级多的文件可以完全忽略。打开之后,右键整个项目并选择“生成解决方案时”,如果你和我一样使用的是VS2017,则肯定会出现报错,这是平台工具集版本的问题,我下载的win_redis原本是在VS2019上的,它默认是v142平台,但VS2017是V141,此时我们换一下每个项目的平台工具集,就像:

换成自己VS版本的平台工具集就可以了,我的是v141,其它设置应该不用改!我自己在生成解决方案的时候出现了缺少Spinnakerd_v140.lib,如果大家出现类似缺少.lib的错误,这也是“包含目录”、“库目录”、“链接器-附加依赖项”没有正确配置的原因,缺哪个就下载那个,和hiredis的配置方式一样。

生成解决方案的目的是得到链接VS2017和hiredis的两个文件:hiredis.lib、Win32_Interop.lib。至此,我们需要的文件和链接库都有了,接下来就是配置VS了。

在自己项目属性下的VC++目录分别配置“包含目录”和“库目录” ,需要在“包含目录”添加:

这两条路径,大家换成自己的路径就可以了,主要把src和deps放进去就好了。

需要在“库目录” 添加:

VC++目录已经配好了,关掉它。打开“链接器”,在“输入”中的“附加依赖项”添加hiredis.lib、Win32_Interop.lib如图:

至此为止,我们在VS中已经配置好hiredis了,我们可以通过VS来操作Redis数据库了!

在这里放一段验证代码,大家可以试试自己的VS有没有把hiredis配置成功。

#include <iostream>
#include <hiredis.h>
using namespace std;

int main() {
	// 初始化 Redis 连接
	redisContext *redis = redisConnect("localhost", 6379);
	if (redis == NULL || redis->err) {
		if (redis) {
			printf("Error: %s\n", redis->errstr);
		}
		else {
			printf("Can't allocate redis context\n");
		}
		return 1;
	}
	printf("Connected to Redis!\n");
	// 关闭 Redis 连接
	redisFree(redis);
	return 0;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值