精华内容
下载资源
问答
  • 一 redis源码编译 很多博客对redis的源码编译都说的很笼统,按照他们的方法基本都编译失败了,redis的windows版目前最新版本是3.2,...很好连接redis,而C++则比较麻烦,下面介绍如何用VS2013编译redis源码,并连...

    一  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 <windows.h>
    #include <iostream>
    
    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 << "Connect to redisServer failed: " << c->errstr << endl;
    		redisFree(c);
    		return;
    	}
    
    	cout << "Connect to redisServer Success" << endl;
    
    	const char* command1 = "set test1 value1";
    	redisReply* r = (redisReply*)redisCommand(c, command1);
    
    	if (NULL == r)
    	{
    		cout << "Execut command1 failed" << endl;
    		redisFree(c);
    		return;
    	}
    
    	if (!(r->type == REDIS_REPLY_STATUS && (strcmp(r->str, "OK") == 0 || strcmp(r->str, "ok") == 0)))
    	{
    		cout << "Failed to execute command: " << command1 << endl;
    		freeReplyObject(r);
    		redisFree(c);
    		return;
    	}
    
    	freeReplyObject(r);
    	cout << "Succeed to execute command" << command1 << endl;
    
    	const char* command2 = "strlen test1";
    	r = (redisReply*)redisCommand(c, command2);
    	if (r->type != REDIS_REPLY_INTEGER)
    	{
    		cout << "Failed to execute command" << command2 << endl;
    		freeReplyObject(r);
    		redisFree(c);
    		return;
    	}
    
    	int length = r->integer;
    	freeReplyObject(r);
    	cout << "The length of 'test1' is : " << length << endl;
    	cout << "Succeed to execute command :" << command2 << endl;
    
    	const char* command3 = "get test1";
    	r = (redisReply*)redisCommand(c, command3);
    	if (r->type != REDIS_REPLY_STRING)
    	{
    		cout << "Failed to execute command : " << command3 << endl;
    		freeReplyObject(r);
    		redisFree(c);
    		return;
    	}
    	cout << "The value of 'test1' is : " << r->str << endl;
    	freeReplyObject(r);
    	cout << "Succeed to execute command : " << command3 << endl;
    
    	const char* command4 = "get test2";
    	r = (redisReply*)redisCommand(c, command4);
    	if (r->type != REDIS_REPLY_NIL)
    	{
    		cout << "Failed to execute command : " << command4 << endl;
    		freeReplyObject(r);
    		redisFree(c);
    		return;
    	}
    	freeReplyObject(r);
    	cout << "Succeed to execute command : " << command4 << endl;
    
    	redisFree(c);
    }
    
    int main()
    {
    	WSADATA wsaData;
    	int nRet;
    	if ((nRet = WSAStartup(MAKEWORD(2, 2), &wsaData)) != 0)
    	{
    		cout << "WSAStartup failed" << endl;
    		exit(0);
    	}
    
    	doTest();
    
    	system("pause");
    	return 0;
    }
    

             redis的连接编译比较坑,mmp, 我试了几次,才解决一些编译错误,还有之前一些博客的错误引导,坑的一笔。代码贴完后,需要对VS属性做一些修改,如下:

     1.

                                  

    2

                                  

               如果还有其它错误,请自行查询修改

                                        

     

                     代码如果没有错误,运行 结果如下:

                                               

                   

    展开全文
  • 编译redis源码出错

    2017-07-08 17:38:59
    在linux环境中编译redis源码时,有时会出现错误:jemalloc/jemalloc.h:没有那个文件或目录,如下图所示: 问题产生的原因是redis内部默认的是 jemalloc分配器而不是libc, 如果没有jemalloc只有libc。就要在指令...

    在linux环境中编译redis源码时,有时会出现错误:jemalloc/jemalloc.h:没有那个文件或目录,如下图所示:
    这里写图片描述
    问题产生的原因是redis内部默认的是 jemalloc分配器而不是libc, 如果没有jemalloc只有libc。就要在指令中制定libc,使用 make MALLOC=jemalloc指令。

    展开全文
  • 1.下载源码包[[emailprotected] opt]#wget http://download.redis.io/releases/redis-4.0.10.tar.gz2.解压缩redis[[emailprotected] opt]#tar -zxvf redis-4.0.10.tar.gz[[emailprotected] opt]#cd redis-4.0.103....

    1.下载源码包

    [[email protected] opt]#wget http://download.redis.io/releases/redis-4.0.10.tar.gz

    20190101174935460056.png

    2.解压缩redis

    [[email protected] opt]#tar -zxvf redis-4.0.10.tar.gz

    20190101174935590920.png

    [[email protected] opt]#cd redis-4.0.10

    20190101174935669048.png

    3.进入redis源码,直接可以编译且安装

    make && make install

    [[email protected] redis-4.0.10]#make

    --> 编译好后,src/目录下有编译好的redis指令--> ./redis-benchmark //用于进行redis性能测试的工具--> ./redis-check-dump //用于修复出问题的dump.rdb文件--> ./redis-cli //redis的客户端--> ./redis-server //redis的服务端--> ./redis-check-aof //用于修复出问题的AOF文件--> ./redis-sentinel //用于集群管理

    20190101174935767685.png

    [[email protected] redis-4.0.10]#make install

    20190101174935892690.png

    4.启动redis服务端

    [[email protected] bin]#./redis-server

    20190101174936002069.png

    修改daemon为yes,避免启动后Hang住了...

    20190101174936104612.png

    5.可以指定配置文件启动redis

    vim /opt/redis-4.0.10/redis.conf

    20190101174936134887.png

    #redis-cli

    输入ping,如果得到PONG,就说明成功了!127.0.0.1:6379>ping

    PONG127.0.0.1:6379>

    20190101174936254032.png

    127.0.0.1:6379> keys *(empty listorset)127.0.0.1:6379>出现以上提示,说明redis里面没有内容.

    [[email protected] redis-4.0.10]#grep -v "^#" redis.conf | grep -v "^$"

    20190101174936355598.png

    20190101174936567520.png

    20190101174936697408.png

    使用redis的密码进行登录

    requirepass 登录redis的密码

    #requirepass foobared#设置redis启动密码,xxxx是自定义的密码

    requirepass xxxxxx

    Pycharm登录客户端

    importredis

    conn= redis.Redis(host=‘192.168.142.130‘, port=6380)

    conn.set(‘name‘,‘apollo‘)print(conn.get(‘name‘))

    20190101174936814600.png

    解决方案:加password解决

    importredis

    conn= redis.Redis(host=‘192.168.142.130‘, port=6380, password=‘redis‘)

    conn.set(‘name‘,‘apollo‘)print(conn.get(‘name‘))

    Linux登录客户端

    20190101174936901518.png

    redis还支持交互式的参数,登录数据库

    redis-cli -p 6380  -a  redis的密码  (这个不太安全)

    20190101174937006990.png

    1).更改bind参数,让redis可以远程访问

    bind 0.0.0.0

    2).更改redis的默认端口

    port 6380

    3).指定配置文件启动

    redis-server redis.conf

    6.通过新的端口和密码登录redis

    redis-cli -p 6380

    登录后

    auth 密码

    7.通过登录redis,用命令查看redis的密码

    config set  requirepass  新的密码         #设置新密码

    config get  requirepass              #获取当前的密码

    过滤出文件的空白行和注释行

    grep -v "^#"  redis.conf |   grep  -v "^$"

    原文:https://www.cnblogs.com/apollo1616/p/10205319.html

    展开全文
  • 问题:使用ubuntu编译redis源码时,发现没有安装编译器,下面是安装编译器的过程   1、安装make sudo apt-get install make   2、安装gcc sudo apt-get install gcc   ok,现在可以编译redis了   ...

    环境:Ubuntu 14.04.1

     

    问题:使用ubuntu编译redis源码时,发现没有安装编译器,下面是安装编译器的过程

     

    1、安装make

    sudo apt-get install make

     

    2、安装gcc

    sudo apt-get install gcc

     

    ok,现在可以编译redis了

     

    展开全文
  • 在CentOS 5/RedHat 5上编译源码安装Redis | Install Redis on CentOS 5 / Redhat 5环境Redhat 5.7 64bit / CentOS 5 64bitGcc 4.1.2编译安装Redis三步曲:下载、解压、编译安装。wget ...
  • 下载安装本机适配的VS安装包 ... 安装VS软件(需勾选Windows SDK) ...导入redis源码 源码地址:https://github.com/MicrosoftArchive/redis/releases(此地址为微软github维护地址)下载的压缩包需解压 文件...
  • 编译Redis源码 启动单节点Redis实例 将命令拷贝到PATH路径下 配置单节点redisconf 启动Redis实例 使用redis-cli客户端 关闭Redis实例 概要信息本文主要介绍在CentOS6.x下编译Redis的源码,并使用后台进程启动一个...
  • redis 源码 编译

    2020-08-21 14:42:32
    最近,想一个问题,redis 到底有几个线程,百思不得其解,为寻究竟,看源码,静态看源码后,有了大概结论,想证实一下,编译源码,debug,修改,测试 准备 工具 mac redis 5.0 Clion 编译 记录下源码...
  • Redis源码编译篇之Makefile文件详解

    千次阅读 多人点赞 2021-06-07 21:02:19
    Redis源码编译篇之Makefile文件详解1、前言2、Makefile文件详解3、src/Makefile文件详解3.1、Makefile.dep目标3.2、通用的生成目标文件的target3.3、all目标所依赖的各个子目标的名称设置3.4、all目标所依赖的各个子...
  • Redis源码编译与调试

    千次阅读 2020-07-08 01:34:54
    Redis 是目前最常用的缓存数据库,C语言编写的。这里我用Clion 编译调试。 Clion 安装 CLion 是 JetBrains 推出的全新的 C/C++ 跨平台集成开发环境。用来阅读 Redis 源码再合适不过了。...Redis源码有多个模..
  • Redis源码编译安装

    2019-07-01 21:33:40
    1)下载Redis安装包(下载链接从Redis官网获取,直接搜索redis进入官网) [xiaokang@localhost redis-5.0.5]$ cd...# 下载redis源码安装包 [xiaokang@localhost tmp]$ wget http://download.redis.io/releases/red...
  • 源码编译Redis Desktop Manager参考

    千次阅读 热门讨论 2020-08-11 11:53:52
    源码编译Redis Desktop Manager ———————————————— 版权声明:本文作者为「Kany.Wang」,本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处! 原文链接:...
  • redis 源码编译安装

    千次阅读 2018-04-12 14:51:55
    1.下载redis 源码包 wget http://download.redis.io/releases/redis-3.0.5.tar.gz 2.解压 安装包,进入目录tar xzvf redis-3.0.5.tar.gz3.编译安装,如果未安装gcc,无法编译c,c++文件.安装gccredhat/centosyum ...
  • redis源码环境搭建

    2020-10-23 10:53:43
    好久没有写博客了,开始搞起。 redis源码搭建,搞了一个星期,各种问题。 感谢前辈的博文 ... ...但是编译redis源码报错,少了很多文件。所以还是只能用cygwin64。 最终解决方案是,全部卸载重...
  • 下载源码 git clone git@github.com:redis/redis.git redis makefile说明 指定编译参数支持debug 增加CFLAGS="-g -O0"参数,支持编辑器debug make CFLAGS="-g -O0" 官方关于debug说明连接 ...
  • 以笔者的例子,笔者采用windows装CLion并用Remote Development连接linux虚拟机的方式来编译redis源码,版本为6.2.6,在构建的过程中也报了jemalloc出No such file or directory的问题。在笔者的场景下,仔细查看
  • 源码编译Redis Desktop Manager 2019.0.0 for mac OSX, RedisDesktopManager.app 实际大小就只有52.9M哈,不要被dmg打包给吓到了, 另外在暗黑模式下感觉不是很完美。 搬运的哈。
  • Windows 环境源码编译 Redis Desktop Manager

    千次阅读 热门讨论 2019-05-30 17:54:01
    一直使用 Redis Desktop Manager,非常好用,之前也不知道在哪下载的 0.9.3 版本,现在一直提示升级到 2019.0,特别烦,官网的下载都需要收费,好在可以从源码编译,特此记录一下。
  • 1. 编译dep及redis 编译dep bigdata@ubuntu1:~/run/redis/deps$ bigdata@ubuntu1:~/run/redis/deps$ make geohash-int bigdata@ubuntu1:~/run/redis/deps$ make hiredis bigdata@ubuntu1:~/run/redis/deps$ make jem
  • Redis 安装部署Redis 安装部署修改配置文件Redis服务控制修改参数 Redis 安装部署 首先关闭防火墙 systemctl stop firewalld ...源码编译安装 cd /opt/redis-5.0.7/ make make PREFIX=/usr/local/redis install #
  • Centos Redis源码安装

    千次阅读 2018-11-05 19:41:29
    Centos Redis源码安装gcc 编译环境安装创建安装目录下载稳定版([下载地址传送门](http://download.redis.io/releases))解压移动到安装目录编译安装创建日志目录修改配置文件指定配置文件启动查看Redis进程密码关闭...
  • 使用Qt Creator作为Linux IDE,实现Redis源码编译和断点调试
  • mac源码编译RedisDesktopManager 2019.3

    千次阅读 2019-09-05 20:53:50
    导语 本次源码编译的是2019.3版本,是目前的最新...从源码编译macOS版本的RedisDesktopManager 官网给出的mac源码指引,别跟我说你没看过 教程 阅读参考文章,读完之后,结合两者照做,本文结束……并且参考我...
  • 在 Raspberry Pi 3B 上编译 Redis ...编译器版本: gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0Overview在 Raspberry Pi 3B 上编译 Redis下载源码解压准备环境编译fix compiler issue开始编译测试编译出来的...
  • Redis源码安装ubuntu

    2020-05-14 10:31:36
    Redis源码安装 下载redis源码 从官网下载 sudo wget http://download.redis.io/releases/redis-6.0.1.tar.gz 在指定路径中解压源码包 sudo tar -zxvf redis-6.0.1.tar.gz 进入解压后的目录中进行编译 make ...
  • 一、基础环境信息 ... 执行如下命令,获取Redis源码。 wget http://download.redis.io/releases/redis-4.0.9.tar.gz 执行如下命令,解压包。 tar -zxvf redis-4.0.9.tar.gz 执行如...
  • CLion调试redis源码

    千次阅读 2019-03-26 09:22:25
    CLion使用CMake来管理编译,而redis源码本身使用make,因此直接将redis源码导入CLion无法直接运行,需要配置CMake。 由于学习过程中参考的书籍为《Redis 设计与实现》,因此源码版本也跟本书保持一致。 步骤 1. 下载...
  • Redis源码编译安装(Windows/Linux) 1、windows 版redis安装编译:1.1 下载:https://github.com/microsoftarchive/redis/releases,这里我选的3.0.504.1.2 打开之后编译整个解决方案,可能会出现以下问题:1、CL....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,953
精华内容 12,781
关键字:

如何编译redis源码

redis 订阅