在本指南中,我们将介绍几个主题,它们将帮助你在 Windows 10 上安装 Redis。我们还会处理这是否确实是最好的设置。
准备好体验 Redis 云了吗? 立即注册免费账户。
多亏 Dusan Majkic,你可以下载一个稍微过时的适用于 32 位和 64 位 Windows 的预编译版本 Redis,方法是从他的 GitHub 页面下载。
在 Windows 中下载 Redis 后,你需要从 zip 文件中解压可执行文件。只要你使用的是比 Windows XP 更新的 Windows 版本,你应该无需任何其它软件即可解压 Redis。
将 32 或 64 位版本的 Redis 解压到你选择的位置后(视你的平台和偏好而定;请记住,64 位 Windows 可以运行 32 或 64 位 Redis,但 32 位 Windows 只可以运行 32 位 Redis),你可以通过双击redis-server可执行文件来启动 Redis。Redis 启动后,你应该会看到类似于图 A.1 的窗口。
如果你发现自己正处于需要尽可能最新的 Windows 版 Redis 的情形中,你需要亲自编译 Redis。你的最佳选择是使用Microsoft 的官方端口,它需要 Microsoft Visual Studio,尽管免费版 Express 2010 功能很不错。如果你选择走这条路,请注意 Microsoft 不保证其端口在 Windows 中适用于除开发和测试之外的任何用途。
你可以使用适用于 Linux 的 Windows 子系统 (又名 WSL2) 在 Windows 10 中安装Redis 缓存。WSL2 是一个兼容层,可用于在 Windows 10 和 Windows Server 2019 中本机运行 Linux 二进制可执行文件。WSL2 允许开发人员直接在 Windows 上运行 GNU/Linux 环境(包括命令行工具、实用程序和应用程序)。
自 杰西卡·迪恩在我 SVDevOps 见面会上解释了 WSL 的工作原理以来,我始终建议 Redis Windows 10 用户在自己的开发机器上运行 Redis。没错,你没有听错。从 Windows 10(v1709 – 2017 年 9 月,秋季创意者更新)开始,你可以在 Windows 子系统(WSL)上运行至少六种发行版的 Linux,而且可以在这些基础之上运行 Redis。不需要虚拟机。不需要 Docker。没有开玩笑!
要回答“我的电脑运行的 Windows 是哪个版本?”这个问题,请按 Windows 徽标键 + R,键入“winver”,然后选择确定。从版本 10 开始,你有一个名为“wslconfig”的命令。它会列出你拥有的发行版,并控制键入“bash”后启动的发行版。快来试一试!
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
你可以使用 Windows 子系统(也称为 WSL2)在 Windows 10 上运行 Redis。WSL2 是一款兼容层,用于在 Windows 10 和 Windows Server 2019 上原生运行 Linux 二进制可执行文件。通过 WSL2,开发者可以在 Windows 上直接运行 GNU/Linux 环境(包括命令行工具、实用工具和应用程序)。
你可以按照下面的书面步骤进行操作,也可以观看 Guy Royse 的此视频,了解如何使用 Linux 的 Windows 子系统 (WSL) 在 Windows 10 上安装最新版本的 Redis。
按照以下说明在 Microsoft Windows 10 上运行 Redis 数据库。
在 Windows 10 中,Microsoft 已将命令提示符替换为 PowerShell 作为默认外壳。以管理员身份打开 PowerShell 并运行此命令以启用 Linux 的 Windows 子系统 (WSL)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
更改完成之后重新启动 Windows — 请注意,你只需要执行此操作一次。
start ms-windows-store:
然后搜索 Ubuntu 或你首选的 Linux 发行版,并下载最新版本。
安装 Redis 简单明了。下面的示例适用于 Ubuntu(首次使用时你需要等待初始化并创建登录)。
sudo apt-add-repository ppa:redislabs/redis sudo apt-get update sudo apt-get upgrade sudo apt-get install redis-server
注意
sudo
命令根据系统用户的配置可能需要或不需要。
按以下方法重启 Redis 服务器
sudo service redis-server restart
使用 redis-cli
命令测试与 Redis 数据库的连接性。
$ redis-cli 127.0.0.1:6379> set user:1 "Jane" 127.0.0.1:6379> get user:1"Jane"
注意
默认情况下,Redis 为数据库设置了 0-15 个索引,你可以在 redis.conf 中更改数字数据库 NUMBER。
sudo service redis-server stop
既然 Windows 上的 Redis 已启动并运行,那么现在是时候下载和安装 Python 了。
如果您已经安装了 Python 2.6 或 2.7,那就没问题了。如果没有,您应该下载 Python 2.7 的最新版本,因为它是对 Redis 库提供支持的最新 Python 版本。请访问 https://pythonlang.cn/download/,并选择适用于 Windows 的 2.7 系列最新版本,选择 32 位或 64 位版本(同样取决于您的平台)。Python 下载完成后,可以通过双击下载的 .msi 文件进行安装。
如果接受了所有 Python 2.7 的默认安装选项,则 Python 应已安装于 C:Python27 中。从这里,您只需安装 Python Redis 库即可准备好在 Python 中使用 Redis。如果您使用的是 Python 2.6,只要本书提及 Python27,您都可以用 Python26来替换。
为了帮助安装 Redis 客户端库,您需要使用 setuptools软件包中的 easy_install实用工具。这是因为您可以通过命令行轻松下载 setuptools 。首先,通过进入开始菜单中的附件程序组并单击命令提示符,打开命令提示符。
打开命令提示符后,请按照下一个列表进行操作;它显示了如何下载并安装 setuptools和 Redis 客户端库。
A.6 在 Windows 中为 Python 安装 Redis 客户端库
C:Usersjosiah>c:python27python
在交互模式下启动 Python 本身。
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit...
Type "help", "copyright", "credits" or "license" for more information.
>>> from urllib import urlopen
从 urllib 模块中导入 urlopen 工厂函数。
>>> data = urlopen('http://peak.telecommunity.com/dist/ez_setup.py')
获取可以帮助您安装其他软件包的模块。
>>> open('ez_setup.py', 'wb').write(data.read())
将下载的模块写入磁盘上的文件。
>>> exit()
通过运行内置 exit() 函数退出 Python 解释器。
C:Usersjosiah>c:python27python ez_setup.py
运行 ez_setup 帮助器模块。
Downloading http://pypi.python.org/packages/2.7/s/setuptools/...
完成对 setuptools==0.6c11 的依赖项的处理
ez_setup 帮助器下载并安装 setuptools,这可以轻松下载并安装 Redis 客户端库。
C:Usersjosiah>c:python27python -m easy_install redis
Searching for redis
完成对 redis 的依赖项的处理
使用 setuptools 的 easy_install 模块下载并安装 Redis。
C:Usersjosiah>
现在您已经安装了 Python 和 Redis 客户端库,请继续阅读以找出在 Windows 中使用 Redis 是否是您的最佳设置。
Redis 在 Windows 上的主要缺点是 Windows 没有得到 Redis 的正式支持。 具体地说,Windows 不支持 fork系统调用,而 Redis 在各种情况下使用该调用将数据库转储到磁盘中。在无法使用 fork 的情况下,Redis 将无法在未阻止客户端(直到转储完成)的情况下执行一些必要的数据库保存方法。
最近,Microsoft 已投入工程时间帮助解决后台保存问题,使用线程将内容写入磁盘,不再使用 fork 的子进程。
截至目前,Microsoft 确实有一个处于 alpha 阶段的分支 Redis 2.6,但它仅作为源代码提供,并且 Microsoft 未对此在生产环境中的适用性做出任何保证。
至少从短期来看,还有由 Dusan Majkic 提出的之前提到的 Redis 非官方版本,它为 Redis 2.4.5 提供了预编译的二进制文件。但是,将数据库转储到磁盘中时,Redis 会阻塞。
立即使用免费的 Redis Cloud 帐户 开始使用。