一、下载的是Redis Windows版本;下载地址:https://github.com/microsoftarchive/redis;解压到:E:Software edis-3.0;
二、用VS打开项目:
1. 打开文件E:Software edis-3.0msvs;点击RedisServer.sln,用VS打开;所有警告点击确定,如下图:这里使用的是VS2015
2. 运行所有解决方案:
加载项目后如图:
右击解决方案,选择重新生成解决方案,解决方案生成成功
3. 打开文件E:Software edis-3.0msvsx64Debug,查看生成的lib和exe
三、 新建项目TestRedis
1. 添加包含目录,点击TestRedis项目,右键属性->C/C++->常规->附加包含目录,输入以下两个目录,以“;”号分隔开:
A、添加Redis库原码, 路径:E:Software edis-3.0src;
B、添加HiRedis库原码,路径:E:Software edis-3.0depshiredis;
2. 添加附加依赖库:hiredis.lib,Win32_Interop.lib;点击TestRedis项目,右键属性->链接器->输入->附加依赖项输入库所在目录;
3.重新启动Redis-server, 打开CMD,导航到Redis-server目录,输入,如下
四,添加TestRedis项目,尝试连接
#include "stdafx.h" #include <Windows.h> #include <hiredis.h> #pragma comment(lib, "Win32_Interop.lib") #pragma comment(lib, "hiredis.lib") int main() { //redis默认监听端口为6387 可以再配置文件中修改
redisContext* pRedisContext = redisConnect("127.0.0.1", 6379);
if (NULL == pRedisContext || pRedisContext->err)
{
printf("%s ", pRedisContext->errstr);
printf("Connect to redis server failed ");
return -1;
}
//输入Redis密码
const char *pszRedisPwd = "123456";
redisReply *pRedisReply = (redisReply*)redisCommand(pRedisContext, "AUTH %s", pszRedisPwd);
if (NULL != pRedisReply)
{
freeReplyObject(pRedisReply);
}
//用get命令获取数据
char szRedisBuff[256] = { 0 };
sprintf_s(szRedisBuff, "GET %s", "name");
pRedisReply = (redisReply*)redisCommand(pRedisContext, szRedisBuff);
if (NULL == pRedisReply)
{
printf("Get data Error!");
return -1;
}
if (NULL == pRedisReply->str)
{
freeReplyObject(pRedisReply);
return -1;
}
string strRes(pRedisReply->str);
freeReplyObject(pRedisReply);
//向Redis写入数据
pRedisReply = (redisReply *)redisCommand(pRedisContext, "SET keyName huantest");
if (NULL != pRedisReply)
{
freeReplyObject(pRedisReply);
}
return 0; }
注意:Redis Windows截止作者使用的时间:
1. 最新版本为 3.0, 3.0的Window版本在使用redisConnectWithTimeout的方法时会出现连接错误:报磁盘空间不足;
2. 如果vs环境下没有库文件ShLwApi.Lib,AdvAPI32.Lib,会报错;这两个库文件在C盘下,请自行搜索;