Windows 系统编译 Redis 6.0.7 最新版

redis最新版本,windows系统最新版本redis

Redis5.0带来了Stream类型。从字面上看是流类型,但其实从功能上看,应该是Redis对消息队列(MQ,Message Queue)的完善实现。用过Redis做消息队列的都了解,基于Reids的消息队列实现有很多种,例如:

  • PUB/SUB,订阅/发布模式
  • 基于List的 LPUSH+BRPOP 的实现
  • 基于Sorted-Set的实现

自己的一个小项目中,需要使用到Stream类型数据,所以,就要开始折腾了。

手懒不想自己编译Redis Windows版的,可以联系我。

看Redis文档,其实它是不能直接支持windows系统的,但是咱们工人有力量,折腾下就好。

在网上查,看着有用Cygwin编译成功的,但是我想用MinGW试试,使用MinGW最终没有成功,差在缺少poll.h 文件,但是发现Cygwin64中是有这个文件的。所以还是转到了使用Cygwin进行编译,最终编译成功,做了一个普通版,一个TLS版,。

编译systemd版本Redis

编译失败

要编译一个systemd版本的,但是报错,应该是缺少环境。

reids的开发文档中说:要使用systemd支持进行构建,您将需要systemd开发库(例如Debian / Ubuntu上的libsystemd-dev或CentOS上的systemd-devel)

20200903170652

编译Mac OS版本的 Redis

编译失败

还要编译一个Mac OS版本,还是缺少必要环境文件

20200903171114

进入依赖,编译依赖:

Cygwin中没有 sys/syscall.h 文件,结果没有结果了。

———————-

下面是编译成功的 Redis 6.0.7 普通版本和TLS版

———————-

编译 Redis 普通版和TLS版

  1. 先安装Cygwin64环境,并安装gcc,gcc-core,gcc-g++devel包;
  2. 在windows系统中把Redis源码解压放到 ./cygwin64/home/admin 下;
  3. 进入Cygwin模拟系统的 /home/admin 下,使用ls命令就会看到刚才放入的文件夹;
  4. 进入 redis-6.0.7 文件夹,可以进行一次git提交,这样在编译成功后可以清楚的看到增加了哪些文件,

    如果是TLS版本:

     
  5. 如果顺利的话,会看到:
    20200903174903
    但是一般的时候,不会那么顺利的!!!
    20200903175548
  6. 在windows系统中新建一个文件夹redis-v6.0.7,把 ./redis-6.0.7/src下的.exe文件全部拷贝过来;
  7. 再到./cygwin64/bin下,找到cygwin1.dell拷贝到新建的文件夹中
  8. 再把项目根目录的 redis.conf 文件,拷贝过来
    20200906212724
  9. 测试,查看帮助信息,进入redis目录,命令:redis-server.exe -h
  10. 启动redis,命令:redis-server.exe 或 redis-server.exe redis.conf
    20200903181416
  11. 再开个cmd,进入此目录,命令:redis-cli.exe
    20200906172434
  12. 完成。

另外,做了两个bat脚本,一个是添加redis到windows系统服务(create-service.bat),一个是删除此添加redis的系统服务(delete-service.bat)。

常见报错:

1、

解决办法:进入/home/admin/redis-6.0.7/src/deps/linenoise/ 目录,编译

2、

解决办法:进入/home/admin/redis-6.0.7/src/deps/hiredis/ 目录,编译

3、

解决办法:
安装或更新 GNU Cygwin 中的 tcl 版本大于 8.5即可

 

其实还有其它报错,但是没记下那么多,理解意思就行,大致的意思,一是编译环境依赖版本的问题,二是需要预编译包内自带的所需的工具。

手懒不想自己编译redis最新版本(Redis Windows版)的,可以联系我。

Redis客户端工具