您当前的位置: 首页 >  redis

令狐掌门

暂无认证

  • 0浏览

    0关注

    513博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

VS编译redis源码(最详细最完整的方法)

令狐掌门 发布时间:2019-07-18 20:17:07 ,浏览量:0

一  redis源码编译

        很多博客对redis的源码编译都说的很笼统,按照他们的方法基本都编译失败了,redis的windows版目前最新版本是3.2,linux版最新是5.0,windows系统用C++连接redis不太方便,如果是Java,用maven下载jedis jar包,配置一下,很好连接redis,而C++则比较麻烦,下面介绍如何用VS2013编译redis源码,并连接redis做项目开发。

         windows版redis源码链接: https://github.com/microsoftarchive/redis/tree/3.2,目前版本分支的是3.2,翻到页面最下面,可以看到相关的使用、编译、测试等说明。

                 

   

         根据官网说明可知,用VS2013编译,但是必须更新到update5, 否则会出现各种编译错误,确实如此,之前用vs2013的其它版本,出现各种错误,无法修改。

         打开VS2013---帮助---关于,即可查看自己的VS版本,例如我重装之后的update5:

                                                                          

         不是VS2013 update5的可以下载重装。

          vs2013 update5下载链接:http://www.121down.com/soft/softview-43319.html

         

         打开redis-win-3.2.100\msvs\RedisServer.sln 一共9个项目:

                                            

         把RedisServer设为启动项目(默认已经设置),编译,如果是update5版的VS2013,是没有编译错误的,可以设置x86, x64,运行结果如下:

                                 

         也可以断点调试

                          

         以上是服务端程序,其它的如客户端redis-cli,  断点之后,再启动客户端可以进行相关代码调试。

                                   

二  C++ 连接redis

         用VS2013创建一个win32控制台程序进行连接测试。需要包含源码中的头文件和编译好的静态库。

         头文件:

        

        lib库目录

       

        无需其它dll, 注意默认编译平台是mixxed platform, 生成的lib和exe在release 目录,不过影响不大,手动改成x86或x64就会到相关目录

     

     C++ 连接redis主要使用hiredis的代码,有些博客的说法有错误,例如:

    (1)把/ src / 下的win32fixes.c放到项目目录下(即main.cpp文件所在位置),我的代码没有这样做;

    (2)hiredis只能在linux上使用,现在也可以在windows上使用;

      

       redis执行程序下载连接:https://github.com/microsoftarchive/redis/releases  解压到任意目录,双击redis-server.exe即可运行。然后编写代码,连接redis-server.

        示例代码如下:

#include "hiredis.h"
#include 
#include 

using namespace std;

#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "hiredis.lib")
#pragma comment(lib, "Win32_Interop.lib")

void doTest()
{
	redisContext* c = redisConnect("127.0.0.1", 6379);
	if (c->err)
	{
		cout             
关注
打赏
1652240117
查看更多评论
0.0881s