在本指南中,我们将介绍几个主题,帮助您在 Windows 10 上安装 Redis。我们还将探讨这是否是最佳设置。
准备好体验 Redis Cloud 了吗? 立即注册免费账户。
您可以从 Dusan Majkic 的 GitHub 页面 下载一个适用于 32 位和 64 位 Windows 的、略微过时的预编译版本 Redis。
在 Windows 上下载 Redis 后,您需要从 zip 文件中解压可执行文件。只要您使用的 Windows 版本比 Windows XP 新,您应该无需额外软件即可解压 Redis。
将 32 位或 64 位版本的 Redis 解压到您选择的位置后(取决于您的平台和偏好;请记住,64 位 Windows 可以运行 32 位或 64 位 Redis,但 32 位 Windows 只能运行 32 位 Redis),您可以通过双击 redis-server 可执行文件来启动 Redis。Redis 启动后,您应该会看到一个类似于图 A.1 的窗口。
如果您需要尽可能在 Windows 上运行最新版本的 Redis,则需要自行编译 Redis。最佳选择是使用 微软的官方移植版本,这需要 Microsoft Visual Studio,尽管免费的 Express 2010 版本也能正常工作。如果选择此途径,请注意微软不保证其 Windows 移植版本除了开发和测试之外的任何用途的适用性。
您可以使用 Windows Subsystem for Linux (简称 WSL2) 在 Windows 10 上安装 Redis 缓存。WSL2 是一个兼容层,用于在 Windows 10 和 Windows Server 2019 上原生运行 Linux 二进制可执行文件。WSL2 允许开发者直接在 Windows 上运行 GNU/Linux 环境(包括命令行工具、实用程序和应用程序)。
自从 Jessica Deen 在我的 SVDevOps Meetup 上解释了 WSL 的工作原理以来,我就一直建议使用 Windows 10 的 Redis 用户在他们自己的开发机器上运行 Redis。没错,您没听错。从 Windows 10 (v1709 – 2017-09,创意者更新秋季版) 开始,您可以在 Windows Subsystem for Linux (WSL) 上运行至少六种 Linux 发行版,并可以在其上运行 Redis。无需虚拟机。无需 Docker。是真的!
要回答“我的电脑运行的是哪个 Windows 版本?”这个问题,按下 Windows 徽标键 + R,输入“winver”,然后选择“确定”。从版本 10 开始,您就有了一个名为“wslconfig”的命令。它会列出您拥有的发行版,并通过键入“bash”来控制启动哪个发行版。试试看!
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
您可以使用 Windows Subsystem for Linux (简称 WSL2) 在 Windows 10 上运行 Redis。WSL2 是一个兼容层,用于在 Windows 10 和 Windows Server 2019 上原生运行 Linux 二进制可执行文件。WSL2 允许开发者直接在 Windows 上运行 GNU/Linux 环境(包括命令行工具、实用程序和应用程序)。
您可以按照以下书面步骤操作,或观看此视频,其中 Guy Royse 将向您展示如何使用 Windows Subsystem for Linux (WSL) 在 Windows 10 上安装最新版本的 Redis。
按照这些说明在 Microsoft Windows 10 上运行 Redis 数据库。
在 Windows 10 中,Microsoft 将 PowerShell 替换为默认 shell,取代了 Command Prompt。以管理员身份打开 PowerShell 并运行此命令以启用 Windows Subsystem for Linux (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 中更改 `databases NUMBER` 来改变这个数量。
sudo service redis-server stop
既然 Redis 已经在 Windows 上运行起来了,现在是时候下载并安装 Python 了。
如果您已经安装了 Python 2.6 或 2.7,那就没问题。如果还没有,您需要下载 Python 2.7 的最新版本,因为这是支持 Redis 库的最新 Python 版本。前往 https://pythonlang.cn/download/ 并选择 2.7 系列中适用于 Windows 的最新版本(同样,取决于您的平台,选择 32 位或 64 位版本)。Python 下载完成后,您可以双击下载的 .msi 文件进行安装。
假设您接受了安装 Python 2.7 的所有默认选项,Python 应该安装在 C:Python27。接下来,您只需要安装 Python Redis 库就可以使用 Redis 和 Python 了。如果您使用的是 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 是否是适合您的最佳设置。
在 Windows 上运行 Redis 的主要缺点是 Redis 官方不支持 Windows。 具体来说,Windows 不支持 fork 系统调用,Redis 在各种情况下使用此调用将数据库转储到磁盘。由于无法 fork,Redis 在执行某些必要的数据库保存方法时会阻塞客户端,直到转储完成。
最近,Microsoft 投入了工程时间,帮助解决后台保存问题,使用线程而不是分叉的子进程将数据写入磁盘。
截至撰写本文时,Microsoft 确实有一个 Redis 2.6 的 Alpha 阶段分支,但它仅以源代码形式提供,并且 Microsoft 不保证其在生产环境中的适用性。
至少在短期内,有前文提到的 Dusan Majkic 提供的 Redis 非官方移植版本,它提供了 Redis 2.4.5 的预编译二进制文件。然而,当将数据库转储到磁盘时,Redis 会阻塞。
立即开始使用免费的 Redis Cloud 账户。