「Redis 系列(3)」- 在 Windows 编译安装 Redis6.2.6

503 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第19天,点击查看活动详情

前言

曾经,我也是个爱折腾的少年,现在,我只想让一切在我的 Windows10 笔记本上跑起来,不求什么新特性,只求你稳定就好……

本文涉及的软件版本:

  • Windows 10
  • MSYS2-20220319
  • Redis-6.2.6

第一步:下载软件包

译Redis需要 gcc 和 make,我们可以利用 MSYS2 来提供 gcc 和 make 环境。当然,如果你有 Linux 子系统,应该也是可以的。

首先下载 MSYS2,在清华源就有:传送门

image.png

这里我下载的是 msys2-base-x86_64-20220319.tar.xz,这是一个免安装版。

同时我们要下载 Redis 的源码:传送门

第二步:准备编译环境

首先,解压 MSYS2,注意路径不要有中文和空格

你可以将 MSYS2 当成一个迷你的 Linux 子系统,它包含包管理器、终端等一些功能。

image.png

进入路径 etc\pacman.d 路径,这是包管理器 Pacman 的源配置路径,如果你接触过 Arch 系的 Linux 发行版,应该对此有所了解,但如果你没接触过,你可以将它当成类似于 Centos 中的 RPM 包管理器。

这一步的目的是将源换成国内的源,这样我们等会下载 gcc 的时候,速度会快一些,如果你网络够好,完全可以跳过这一步。

我们要改一下下面三个配置文件的源顺序:

image.png

修改的方式也很简单,将国内源的地址复制到第一行即可,就像下面这样:

image.png

这样配置就算完成了,我们直接执行 msys2.exe,就会打开一个终端。

image.png

执行以下命令,安装 gcc:

# 先同步软件源
pacman -Sy
# 安装 gcc 和 make
pacman -S gcc make

image.png

输入 Y,回车,等待安装完毕即可,这样,我们的编译环境就准备好了。

开始编译

我们在终端进入根目录,再执行 ls 命令,你会发现我们当前的根路径,就是 MSYS2 的安装路径。

image.png

我们将 Redis 的源码解压到任意目录,在这里我选择解压到 /opt 目录。

解压后我们直接在终端进入 Redis 的源码目录:

image.png

编译命令如下:

make PREFIX=/tmp install

PREFIX=/tmp 参数指定了编译后你要将编译后的程序存放到哪个路径。

但此时我们还不能执行这个命令,由于 MSYS2 的原因,你可能会出现一个报错:「错误:未知的类型名‘Dl_info’」,从而导致编译失败,此时我们需要修改 /usr/include/dlfcn.h 文件,删掉下图中的两行即可,用完记得复原噢,是个好习惯。

image.png

接下来我们直接执行编译命令即可,编译后就可以在 /tmp 路径下找到 Redis 应用,此时我们离成功运行还差最后一步。

运行 Redis

如果现在直接运行 Redis,会出现一个报错:「无法找到 msys-2.0.dll」,而这个文件在 msys2 中是自带的,我们只需要拷贝到 Redis 目录即可。

最后 Redis 的应用目录如下:

image.png

我们直接执行 redis-server.exe,如果你在上面没出什么差错,就会出现 Redis 成功运行的界面,如下图:

image.png

👍点个赞,我们已经成功编译运行 Redis-6.2.6 了。