本文中的相关环境版本信息如下:
windows:Windows 11 家庭中文版
cygwin:cygwin3.5.1
前言概述
平常开发中用的是windows操作系统,有时候想装点软件 一看只支持linux系统 无奈要么启动虚拟机、要么装在云服务器上、要么使用docker。刚想用一下redis 6.x版本来尝试一下redis新版本的特性 打开官网一看 redis官方果然还是不支持windows操作系统。
不过 虽然redis官方上不提供windows版本下载 但是 微软在github上维护的几个可以在windows上运行的redis版本:
项目的github地址是: https://github.com/MicrosoftArchive/redis/releases 我翻看了一下 微软维护了2.x和3.x的多个windows版本的redis 不过比较遗憾 在维护到3.0.504正式版本后 从此以后微软就彻底放弃了维护更新。
不过问题不大,眼看微软撂挑子不干了,波兰的热心市民Tomasz Poradowski先生这时候站出来 继续开始提供可以在windows上运行的4.x和5.x版本的redis 并且从2017年到2022年 一维护就是5年。
项目github地址是:https://github.com/tporadowski/redis/releases 我的windows本地环境运行的redis-5.0.x的版本 就是以前在这里进行下载的。
不过 绕了这么一大圈 问题还是没有解决啊 既然没有现成的可以在windows上运行的redis6.x版本,那我干脆就来自己编译一个吧。
初识Cygwin
介绍一下本篇博文要用到的工具Cygwin,先简单看一下它的官网 https://www.cygwin.com/
Cygwin是什么?
Cygwin是GNU和开源工具的大型集合,它为windows操作系统提供了一个类Unix环境 使用户能够在windows上运行许多原本为Linux/Unix系统设计的命令行工具、应用程序和开发工具。
Cygwin同时也提供了一个POSIX(可移植操作系统接口)兼容环境 使得在windows系统上可以运行类Unix的应用程序,通过重新编译或者简单地移植 可以将许多Linux应用程序移植到windows操作系统中进行使用。
Cygwin提供了一个动态链接库(cygwin1.dll)该动态链接库提供了类Unix系统的API 使得在windows上能够编译和运行许多Unix程序。Cygwin还提供了许多Unix工具和命令行界面,如bash shell、grep、awk等,使得在Windows环境下的开发和使用更加方便。
一句话来概括一下Cygwin的功能:Cygwin是一个可运行于原生windows系统上的POSIX兼容环境,可以通过重新编译将linux应用程序移植到windows中。
Cygwin安装
首先进行编译工具Cygwin的下载和安装 点击我进行下载 完成后就可以开始安装了 下面我会贴出一些需要特殊配置的步骤 如果没有特殊说明的话 那么直接痛快的点击下一步就可以了。
网络连接配置这里选择第二项,也就是直接连接,不需要任何代理方式:

在选择下载站点这一步 我选择的是阿里云的 即:https://mirrors.aliyun.com 然后点击下一步:

接下来选择需要下载安装的组件包 我们只需要下载安装我们编译需要用到的相关的模块即可。先通过“视图”这里选择“类别”然后 选择安装Devel模块下面的make、gcc-core,gcc-g++,以及Libs模块下的libgcc1、libgccpp1,然后双击“最佳”这一列的“跳过”即可出来该软件对应的要安装的具体的版本号,全部添加完成后点击下一步
这里以选择下载安装 make为例 操作示例截图如下:

其它gcc-core、gcc-g++及其它的......都是类似于上图所示这么选择和安装。
然后点击下一步 接下来就会自动进行下载和安装上面我们所选择的模块 等待全部下载结束后安装就完成了。
安装到最后一步的时候 把“在桌面上创建图标(D)”这一步勾选上 我们就可以在桌面上找到 Cygwin64 Terminal 这个快捷方式 并进行打开了。

编译redis6.x版本的源码
首先 把桌面上的 Cygwin64 Terminal 打开 下面编译的时候需要用到。
准备好编译工具后,我们接下来先下载redis6.x版本的源码,6.0.16的下载地址为:
https://download.redis.io/releases/redis-6.0.16.tar.gz
Cygwin安装完成后 会在它的安装路径的home目录下 创建一个以你登录系统的用户名来命名的目录 我们把下载完成后的redis-6.0.16.tar.gz压缩包放到这个cygwin/home/${user}目录下(本文中对应的具体路径是:E:\software\cygwin\home\zhou) 然后在cygwin命令行中先执行解压命令:
tar -zxvf redis-6.0.16.tar.gz
使用下面的命令先进入到解压后的redis目录 然后执行编译和安装:
cd redis-6.0.16 make && make install
点击回车 然后就开始等待吧 电脑配置越高 这里编译和安装的就很快 我大概等了个二三分钟就搞完了 有的人电脑配置比较低 可能需要花个十几分钟甚至更久的时间才能编译安装完成。
不出意外的最后果然出现了意外 报了两个error 不过貌似没有什么太大影响 我们进入到redis-6.0.16\src目录下 往下一直找。。一直找。。。一直找。。。。就可以找到编译完成后 已经生成了6个exe可执行文件了:
但是如果这个时候双击redis-server.exe尝试进行启动的话 就会报错 提示缺少dll动态链接库,具体报错信息如下:
由于找不到cygwin1.dll,无法继续执行代码。重新安装程序可能会解决此问题。
不过这个不是问题 我可以在Cygwin的安装目录下的bin目录下找到这个文件。为了方便 我们可以把redis相关的可执行文件、cygwin1.dll动态链接库文件、redis配置文件拷贝到一个单独的目录下再次尝试启动redis-server.exe文件:
就会看到 这次能够正常启动成功 表示 redis6.x版本的redis服务已经启动成功。我们再使用redis-cli.exe的redis客户端进行测试一些redis相关命令 都是正常可以用的,终于 redis6.x版本的redis可以在windows环境下正常运行了。
尾声
忙活一大顿总算成功了 我们也终于可以在windows上体验redis6.x版本了 不过这里还是给大家伙儿提个醒,这样编译的redis我们平常自己在学习中体验一下就可以了,尽量不要用在生产上。
使用cygwin编译后的程序 相当于在windows系统上模拟实现了POSIX兼容层 应用程序在底层多了一层函数调用 所以效率比运行在linux系统的原生应用低了很多。因此 这样在windows上运行的redis 无疑会损失掉它引以为傲的高性能这一优势。
redis官方就不支持windows 使用cygwin模拟也不能完全模拟linux环境 官方也不对cygwin有直接支持 所以最好使用redis的环境还是linux。cygwin只适合做学习使用。
如果大家不想费劲编译安装的话 我提供一个别人已经弄好了 可以直接使用的 redis6.0.10的windows版本的版本供大家直接下载使用 下载地址:
redis 6.0.10(稳定版) https://wwa.lanzoui.com/ido0Mkt8jta
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。


精彩评论