Redis 在 Windows 环境下的详尽安装与配置指南
引言
Redis(Remote Dictionary Server)是一个开源的、基于内存的高性能键值对(Key-Value)存储系统。它以其卓越的速度、丰富的数据结构(如字符串、哈希、列表、集合、有序集合等)以及对持久化、发布/订阅、事务等功能的支持,在现代 Web 应用、缓存系统、消息队列、实时分析等领域得到了广泛应用。
尽管 Redis 最初是为 Linux/Unix 环境设计的,并且官方并未正式维护 Windows 版本,但在开发、测试或特定场景下,我们仍然需要在 Windows 系统上安装和运行 Redis。幸运的是,早期由 Microsoft Open Tech (MSOpenTech) 团队维护了一个 Windows 移植版本,虽然目前已不再积极更新,但对于许多开发和测试需求来说仍然可用。此外,更现代且推荐的方式是利用 Windows Subsystem for Linux (WSL) 或 Docker Desktop 在 Windows 上运行原生的 Linux 版 Redis。
本文将详细探讨在 Windows 操作系统上安装 Redis 的几种主要方法,涵盖从准备工作、下载、安装、配置到验证的全过程,旨在为需要在 Windows 环境下使用 Redis 的开发者和系统管理员提供一份全面、细致的操作指南。考虑到文章篇幅要求,我们将深入每个步骤的细节,并讨论可能遇到的问题及解决方案。
一、准备工作与环境要求
在开始安装之前,请确保您的 Windows 系统满足基本要求:
- 操作系统: Windows 10 或 Windows Server 2012 R2 及以上版本(对于 WSL2,需要较新版本的 Windows 10/11)。
- 系统架构: 建议使用 64 位操作系统,因为 Redis 会消耗较多内存。
- 管理员权限: 部分安装步骤(如安装为 Windows 服务、启用 WSL 功能)需要管理员权限。
- 网络连接: 下载 Redis 安装包或 Docker 镜像需要稳定的网络连接。
- (可选) 命令行工具: 熟悉 Windows 命令提示符 (cmd) 或 PowerShell 的基本操作。
- (可选) 文本编辑器: 用于编辑 Redis 配置文件,如 Notepad++, VS Code 等。
重要提示: 鉴于 Redis 官方对 Windows 的非原生支持,以及 MSOpenTech 版本的滞后性,强烈建议在生产环境中使用 Linux 服务器部署 Redis。在 Windows 上运行 Redis 主要适用于开发和测试目的。对于追求更高稳定性和性能的 Windows 用户,使用 WSL2 或 Docker 是更优的选择,因为它们能提供近乎原生的 Linux 环境。
二、安装方法详解
我们将介绍三种在 Windows 上安装 Redis 的主流方法:
- 使用 Microsoft 维护的 Windows 版本 (MSOpenTech/MicrosoftArchive): 这是较早期的直接 Windows 移植版。
- 使用 Windows Subsystem for Linux (WSL): 在 Windows 中运行一个 Linux 子系统,然后在 Linux 环境中安装原生 Redis。(推荐)
- 使用 Docker Desktop for Windows: 通过容器化技术运行官方 Redis 镜像。(推荐)
方法一:安装 Microsoft 维护的 Windows 版本 (MSOpenTech/MicrosoftArchive)
这是最直接在 Windows 上运行 Redis 的方法之一,但请注意此版本可能落后于 Redis 的最新特性和修复。
步骤 1:下载 Redis for Windows
- 访问 Redis 的 MSOpenTech/MicrosoftArchive GitHub 仓库的 Releases 页面:https://github.com/microsoftarchive/redis/releases
- 找到一个相对较新的稳定版本(例如,寻找带有
*.zip
或*.msi
后缀的文件)。通常建议下载.zip
包,因为它提供了更大的灵活性,并且不需要安装过程,可以直接解压使用。假设我们下载Redis-x64-*.zip
文件。 - 将下载的
.zip
文件保存到您选择的目录,例如C:\DevTools\Redis
。
步骤 2:解压文件
- 导航到您保存
.zip
文件的目录 (C:\DevTools\Redis
)。 - 右键点击
.zip
文件,选择“全部提取…”或使用您喜欢的解压工具(如 7-Zip)将其解压到当前目录或指定的新目录。解压后,您会得到一个包含 Redis 可执行文件和配置文件的文件夹,例如C:\DevTools\Redis\Redis-x64-3.0.504
(版本号可能不同)。
步骤 3:理解关键文件
在解压后的文件夹中,您会看到几个重要的文件:
redis-server.exe
: Redis 服务器程序。redis-cli.exe
: Redis 命令行客户端,用于与 Redis 服务器交互。redis.windows.conf
: Redis 服务器的默认配置文件(适用于直接运行)。redis.windows-service.conf
: 专门用于将 Redis 安装为 Windows 服务时的配置文件。redis-benchmark.exe
: Redis 性能测试工具。redis-check-aof.exe
/redis-check-dump.exe
: 用于检查 AOF 和 RDB 持久化文件的工具。
步骤 4:运行 Redis 服务器
有两种主要方式运行 Redis 服务器:
-
方式 A:直接运行 (前台模式)
- 打开命令提示符 (cmd) 或 PowerShell。建议以管理员身份运行,尤其是在后续可能需要将其安装为服务时。
- 使用
cd
命令切换到 Redis 的解压目录:
bash
cd C:\DevTools\Redis\Redis-x64-3.0.504 - 执行
redis-server.exe
启动服务器。默认情况下,它会加载同目录下的redis.windows.conf
文件(如果存在)。
bash
redis-server.exe
或者,您可以明确指定配置文件:
bash
redis-server.exe redis.windows.conf - 如果一切顺利,您将在命令行窗口看到 Redis 的启动日志,包括版本号、运行模式、监听端口(默认为 6379)等信息。服务器将在前台运行,关闭此窗口将终止 Redis 服务器。
-
方式 B:安装为 Windows 服务 (后台模式,推荐用于持续运行)
- 确保您已以管理员身份打开命令提示符或 PowerShell。
- 切换到 Redis 目录:
bash
cd C:\DevTools\Redis\Redis-x64-3.0.504 - 使用
redis-server.exe
的--service-install
参数来安装服务。您需要指定服务配置文件 (redis.windows-service.conf
)。可以添加--loglevel verbose
获取更详细的安装日志。
bash
redis-server.exe --service-install redis.windows-service.conf --loglevel verbose- 注意: 请检查
redis.windows-service.conf
文件,确保其中的logfile
和dir
(工作目录,用于存放持久化文件) 指向有效的路径。如果需要,可以先修改此配置文件。例如,设置日志文件路径:logfile "C:/DevTools/Redis/Logs/redis_log.txt"
(请确保 Logs 目录存在)。
- 注意: 请检查
- 安装成功后,您可以使用 Windows 服务管理器 (
services.msc
) 或命令行来管理 Redis 服务:- 启动服务:
bash
redis-server.exe --service-start
或者使用 Windows 命令:
bash
net start Redis
(服务名称默认为 “Redis”,可以在安装时通过--service-name
参数指定) - 停止服务:
bash
redis-server.exe --service-stop
或者:
bash
net stop Redis - 卸载服务:
bash
redis-server.exe --service-uninstall
- 启动服务:
- 安装为服务后,Redis 将在后台运行,并且可以配置为随 Windows 启动自动运行(通过
services.msc
设置启动类型为“自动”)。
步骤 5:验证 Redis 是否运行
- 打开一个新的命令提示符或 PowerShell 窗口。
- 切换到 Redis 目录:
bash
cd C:\DevTools\Redis\Redis-x64-3.0.504 - 运行 Redis 客户端
redis-cli.exe
:
bash
redis-cli.exe
默认情况下,它会尝试连接到127.0.0.1:6379
。 - 连接成功后,您会看到提示符变为
127.0.0.1:6379>
。 - 输入
ping
命令,如果服务器正常运行,应返回PONG
。
127.0.0.1:6379> ping
PONG - 尝试执行一些基本命令:
127.0.0.1:6379> set mykey "Hello Redis on Windows!"
OK
127.0.0.1:6379> get mykey
"Hello Redis on Windows!" - 输入
exit
或quit
退出redis-cli
。
如果您能成功执行这些步骤,说明 Redis (MSOpenTech 版本) 已在您的 Windows 系统上成功安装并运行。
方法二:使用 Windows Subsystem for Linux (WSL) 安装原生 Redis
这是目前在 Windows 上使用 Redis 的推荐方法,因为它允许您运行未经修改的、官方的 Linux 版 Redis,具有更好的兼容性、性能和最新的特性。
步骤 1:启用 WSL 功能
- 以管理员身份打开 PowerShell 或命令提示符。
- 执行以下命令启用 WSL 功能:
powershell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart - 对于 WSL2(提供更好的性能和兼容性,需要较新 Windows 版本和虚拟化支持),还需要启用“虚拟机平台”功能:
powershell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart - 重启计算机 以应用更改。
- (推荐) 安装 WSL2 更新:访问 https://aka.ms/wsl2kernel 下载并安装最新的 Linux 内核更新包。
- 将 WSL 默认版本设置为 WSL2(可选,但推荐):
powershell
wsl --set-default-version 2
步骤 2:安装 Linux 发行版
- 打开 Microsoft Store。
- 搜索您喜欢的 Linux 发行版,例如 “Ubuntu”, “Debian”, “openSUSE” 等。Ubuntu 是一个非常流行的选择。
- 选择一个发行版并点击“获取”或“安装”。
- 安装完成后,您可以从“开始”菜单启动该 Linux 发行版。
步骤 3:初始化 Linux 发行版
- 首次启动时,系统会提示您创建一个 Unix 用户帐户(用户名和密码)。请按照提示操作,这个帐户将用于在 Linux 环境中执行命令(包括需要
sudo
权限的操作)。
步骤 4:在 Linux 环境中安装 Redis
- 启动您的 Linux 发行版(例如 Ubuntu)。
- 首先,更新包列表,确保获取最新的软件信息:
bash
sudo apt update
系统会要求您输入之前创建的 Linux 用户密码。 - 接着,升级已安装的包(可选,但推荐):
bash
sudo apt upgrade - 使用包管理器安装 Redis 服务器。在基于 Debian/Ubuntu 的系统上,使用
apt
:
bash
sudo apt install redis-server
包管理器会自动处理依赖关系并完成安装。
步骤 5:管理 Redis 服务 (在 WSL Linux 环境中)
安装完成后,Redis 服务通常会自动启动。您可以使用 systemctl
(如果系统支持) 或 service
命令来管理它:
- 检查服务状态:
bash
sudo systemctl status redis-server
或者:
bash
sudo service redis-server status - 启动服务:
bash
sudo systemctl start redis-server
或者:
bash
sudo service redis-server start - 停止服务:
bash
sudo systemctl stop redis-server
或者:
bash
sudo service redis-server stop - 重启服务:
bash
sudo systemctl restart redis-server
或者:
bash
sudo service redis-server restart - 设置开机自启:
bash
sudo systemctl enable redis-server - 禁止开机自启:
bash
sudo systemctl disable redis-server
步骤 6:验证 Redis 安装
- 在 WSL Linux 终端中,运行 Redis 客户端:
bash
redis-cli - 您应该能连接到本地运行的 Redis 服务器(默认监听
127.0.0.1:6379
)。 - 测试连接:
127.0.0.1:6379> ping
PONG - 执行基本操作:
127.0.0.1:6379> set mywslkey "Hello from Redis on WSL!"
OK
127.0.0.1:6379> get mywslkey
"Hello from Redis on WSL!" - 输入
exit
退出。
从 Windows 访问 WSL 中的 Redis: WSL2 的网络架构使得您可以直接从 Windows 主机通过 localhost
或 127.0.0.1
访问在 WSL 内部运行的服务。因此,您可以在 Windows 上使用任何 Redis 图形客户端或代码库,连接到 localhost:6379
来访问 WSL 中运行的 Redis 实例。
方法三:使用 Docker Desktop for Windows 安装 Redis
Docker 提供了一种轻量级、可移植的容器化解决方案,是在 Windows 上运行 Redis 的另一个推荐方法,特别适合需要隔离环境或管理多个服务实例的场景。
步骤 1:安装 Docker Desktop for Windows
- 访问 Docker 官方网站:https://www.docker.com/products/docker-desktop/
- 下载适用于 Windows 的 Docker Desktop 安装程序。
- 运行安装程序,并按照向导指示完成安装。这可能需要启用 Hyper-V 或 WSL2 后端(Docker Desktop 会自动处理或提示您进行设置)。
- 安装完成后,启动 Docker Desktop。等待 Docker 引擎启动(任务栏通知区域的 Docker 图标会变为稳定状态)。
步骤 2:拉取 Redis 官方镜像
- 打开命令提示符 (cmd) 或 PowerShell。
- 执行以下命令从 Docker Hub 拉取最新的官方 Redis 镜像:
bash
docker pull redis
如果您需要特定版本的 Redis,可以指定标签,例如:
bash
docker pull redis:6.2
步骤 3:运行 Redis 容器
-
使用
docker run
命令来创建并启动一个 Redis 容器。以下是一个基本示例:
bash
docker run --name my-redis-instance -d -p 6379:6379 redis
命令解释:docker run
: 运行一个新容器。--name my-redis-instance
: 为容器指定一个易于识别的名称。-d
: 以分离模式(Detached mode)在后台运行容器。-p 6379:6379
: 将主机的 6379 端口映射到容器的 6379 端口。这样,您就可以通过主机的localhost:6379
访问 Redis。redis
: 使用哪个镜像来创建容器(这里是官方 Redis 镜像)。
-
如果您需要持久化数据(即使容器停止或删除后数据仍然保留),可以使用 Docker 卷(Volume):
bash
docker volume create redis_data
docker run --name my-redis-instance -d -p 6379:6379 -v redis_data:/data redis redis-server --appendonly yesdocker volume create redis_data
: 创建一个名为redis_data
的 Docker 卷。-v redis_data:/data
: 将redis_data
卷挂载到容器内的/data
目录(Redis 默认的数据存储目录)。redis-server --appendonly yes
: 在容器启动时传递给 Redis 服务器的命令,这里是启用 AOF 持久化。
-
如果您想使用自定义配置文件:
- 先在主机上创建一个配置文件,例如
C:\DockerData\Redis\my-redis.conf
。 - 然后运行容器时挂载该文件:
bash
docker run --name my-redis-instance -d -p 6379:6379 -v C:\DockerData\Redis\my-redis.conf:/usr/local/etc/redis/redis.conf -v redis_data:/data redis redis-server /usr/local/etc/redis/redis.conf-v C:\DockerData\Redis\my-redis.conf:/usr/local/etc/redis/redis.conf
: 将主机上的配置文件挂载到容器内 Redis 读取配置文件的标准路径。redis-server /usr/local/etc/redis/redis.conf
: 明确告诉 Redis 服务器使用这个配置文件启动。
- 先在主机上创建一个配置文件,例如
步骤 4:管理 Redis 容器
- 查看正在运行的容器:
bash
docker ps - 查看所有容器(包括已停止的):
bash
docker ps -a - 停止容器:
bash
docker stop my-redis-instance - 启动已停止的容器:
bash
docker start my-redis-instance - 重启容器:
bash
docker restart my-redis-instance - 查看容器日志:
bash
docker logs my-redis-instance - 删除容器 (需要先停止):
bash
docker rm my-redis-instance - 删除镜像:
bash
docker rmi redis - 删除卷 (谨慎操作,会丢失数据):
bash
docker volume rm redis_data
步骤 5:验证 Redis 安装
- 由于您已将端口映射到主机,可以直接在 Windows 上使用
redis-cli
(如果通过方法一安装过)或任何图形化 Redis 客户端连接到localhost:6379
。 - 或者,您可以使用 Docker 直接在运行的容器内执行
redis-cli
:
bash
docker exec -it my-redis-instance redis-clidocker exec
: 在运行的容器内执行命令。-it
: 分配一个交互式 TTY (终端)。my-redis-instance
: 容器名称。redis-cli
: 要在容器内执行的命令。
- 进入
redis-cli
后,同样使用ping
和set
/get
等命令进行测试。
三、Redis 配置基础
无论使用哪种安装方法,了解和修改 Redis 配置都非常重要。Redis 的行为由一个配置文件(通常是 redis.conf
或 redis.windows.conf
)控制。
配置文件位置:
- MSOpenTech 版本: 通常与
redis-server.exe
在同一目录,名为redis.windows.conf
或redis.windows-service.conf
。 - WSL 版本: 通常位于
/etc/redis/redis.conf
(具体路径可能因发行版和安装方式略有不同)。 - Docker 版本: 如果没有挂载自定义配置,则使用镜像内置的默认配置。如果挂载了,则位置是您在
docker run
命令中指定的主机路径。
常用配置项:
bind 127.0.0.1
: 限制 Redis 只接受来自本地回环地址的连接。若要允许其他机器访问,可以改为bind 0.0.0.0
(注意安全风险)或指定特定 IP 地址。port 6379
: Redis 服务器监听的端口号。requirepass yourpassword
: 设置客户端连接密码,增强安全性。强烈建议设置。logfile "path/to/redis.log"
: 指定日志文件的路径。dir /path/to/data/directory
: 指定持久化文件(RDB 快照和 AOF 文件)的存储目录。确保 Redis 进程对此目录有写权限。- 持久化配置:
save <seconds> <changes>
: RDB 快照策略。例如save 900 1
表示如果 900 秒内至少有 1 个 key 发生变化,则进行快照。可以有多条save
规则。appendonly yes/no
: 是否启用 AOF (Append Only File) 持久化。AOF 提供更高的数据安全性。appendfsync everysec/always/no
: AOF 文件同步到磁盘的策略。everysec
是性能和安全的良好折中。
maxmemory <bytes>
: 限制 Redis 实例可使用的最大内存量。达到限制后,根据maxmemory-policy
进行数据淘汰。maxmemory-policy noeviction
: 内存达到上限后的淘汰策略。可选值包括volatile-lru
,allkeys-lru
,volatile-random
,allkeys-random
,volatile-ttl
,noeviction
(默认,达到上限后写入操作会报错)。
修改配置后:
- 对于直接运行或作为 Windows 服务的 MSOpenTech 版本,需要重启 Redis 服务器或服务才能使更改生效。
- 对于 WSL 版本,修改
/etc/redis/redis.conf
后,使用sudo systemctl restart redis-server
或sudo service redis-server restart
重启服务。 - 对于 Docker 版本,如果修改了挂载的配置文件,需要重启容器
docker restart my-redis-instance
。如果修改了启动命令(如添加--requirepass
),则需要停止并删除旧容器,然后使用新的docker run
命令创建新容器。
四、常见问题与故障排除
- 端口冲突: 如果启动时报错提示端口 6379 已被占用,请检查是否有其他 Redis 实例或应用程序正在使用该端口。可以使用
netstat -ano | findstr "6379"
(Windows) 或sudo ss -tulnp | grep 6379
(Linux/WSL) 查看。解决方法是停止占用端口的进程,或者修改 Redis 配置文件的port
指令,并使用新端口连接。 - 防火墙问题: 如果无法从其他机器或甚至本机(当
bind
设置非127.0.0.1
时)连接 Redis,请检查 Windows 防火墙或任何其他安全软件是否阻止了 Redis 端口(默认为 6379)的入站连接。需要添加入站规则允许该端口的 TCP 连接。 - 权限问题:
- 安装 Windows 服务时提示权限不足 -> 确保以管理员身份运行命令提示符/PowerShell。
- Redis 无法写入日志文件或持久化文件 -> 检查配置文件中指定的
logfile
和dir
路径是否存在,以及 Redis 运行用户(对于 Windows 服务,通常是 Local Service 或 Network Service;对于 WSL,是redis
用户)是否有写入权限。
- WSL 问题:
- WSL 无法启动或网络不通 -> 确保 WSL 功能已正确启用,尝试
wsl --shutdown
后再重新启动 Linux 发行版。检查 Windows 网络设置。 systemctl
命令在某些旧版 WSL1 或特定发行版中不可用 -> 尝试使用service
命令管理服务。
- WSL 无法启动或网络不通 -> 确保 WSL 功能已正确启用,尝试
- Docker 问题:
- Docker Desktop 无法启动 -> 检查系统虚拟化是否已在 BIOS/UEFI 中启用。确保满足 Docker Desktop 的系统要求。查看 Docker 日志获取详细错误信息。
- 容器无法启动或反复退出 -> 使用
docker logs <container_name>
查看容器日志,找出错误原因(如配置错误、端口冲突、权限问题等)。 - 数据丢失 -> 确保使用了 Docker 卷进行持久化,并且卷已正确挂载。
五、安全注意事项
在 Windows 上运行 Redis 时,尤其是在可能被外部访问的环境中,务必注意安全:
- 设置密码: 使用
requirepass
配置项为 Redis 设置一个强密码。客户端连接时需要使用AUTH <password>
命令进行认证。 - 绑定 IP 地址: 如果 Redis 不需要被网络上所有机器访问,使用
bind
指令将其绑定到特定的 IP 地址(例如bind 127.0.0.1
只允许本机访问,或bind <内网IP>
只允许内网访问)。避免使用bind 0.0.0.0
除非确实需要且有防火墙保护。 - 重命名或禁用危险命令: 可以通过配置
rename-command
来重命名或禁用像FLUSHALL
,FLUSHDB
,KEYS
,CONFIG
等可能造成破坏或泄露信息的命令。例如:rename-command FLUSHALL ""
(禁用)。 - 使用防火墙: 配置 Windows 防火墙或其他网络防火墙,只允许受信任的 IP 地址访问 Redis 端口。
- 非默认端口: 将 Redis 运行在非标准的端口(修改
port
配置)可以在一定程度上降低被自动扫描工具发现的风险。 - 定期更新: 尽管 MSOpenTech 版本不再更新,但如果您使用 WSL 或 Docker,请定期更新 Linux 发行版、Redis 包或 Docker 镜像,以获取最新的安全补丁。
结论
在 Windows 系统上安装和运行 Redis 是完全可行的,尤其对于开发和测试环境。本文详细介绍了三种主要方法:使用旧的 MSOpenTech Windows 移植版、利用推荐的 WSL (Windows Subsystem for Linux) 运行原生 Linux 版 Redis,以及通过同样推荐的 Docker Desktop 进行容器化部署。
对于现代 Windows 用户,WSL2 和 Docker Desktop 是首选方案,它们提供了接近原生 Linux 的体验、更好的性能、持续的更新支持以及更强的环境隔离能力。MSOpenTech 版本虽然安装简单直接,但因其维护停滞,可能缺乏最新功能和安全修复,仅建议在特定旧环境或简单测试场景下考虑。
无论选择哪种方法,理解 Redis 的基本配置、掌握服务的启停管理、学会使用 redis-cli
进行验证,并重视安全配置(如设置密码、绑定 IP、配置防火墙)都是确保 Redis 正常、安全运行的关键。
希望这篇详尽的指南能帮助您成功在 Windows 环境下搭建并有效使用 Redis。请记住,对于生产环境,始终推荐在 Linux 服务器上部署 Redis 以获得最佳性能和稳定性。