Windows 安装 Redis 快速入门指南:从零到精通
引言
Redis (Remote Dictionary Server) 是一款开源的、高性能的、基于内存的键值对(Key-Value)存储系统。它以其惊人的读写速度、丰富的数据结构、持久化能力、发布/订阅模式、事务支持以及集群功能,在现代 Web 应用、缓存系统、消息队列、实时分析等领域得到了广泛应用。
虽然 Redis 官方主要支持 Linux 和 macOS 系统,并且在生产环境中也强烈推荐使用这些类 Unix 系统,但在开发、测试或者一些特定的小型应用场景下,开发者可能需要在 Windows 环境中安装和使用 Redis。幸运的是,有多种方法可以在 Windows 上运行 Redis。
本指南旨在提供一个全面而详细的步骤说明,帮助您在 Windows 操作系统上快速安装、配置和启动 Redis。我们将涵盖最常用的几种安装方式,包括官方(非官方维护的)Windows 版本、使用 Windows Subsystem for Linux (WSL/WSL2) 以及利用 Docker 容器。无论您是初学者还是有一定经验的开发者,都能从中找到适合自己的方法,并了解如何在 Windows 环境下高效地使用 Redis。
本文将涵盖以下主要内容:
- Redis 简介及其在 Windows 上的应用场景
- 安装前的准备工作
- 安装方法一:使用 MicrosoftArchive 提供的 Windows 版本 (适用于快速开发/测试)
- 安装方法二:使用 Windows Subsystem for Linux (WSL/WSL2) (推荐方式,接近生产环境)
- 安装方法三:使用 Docker Desktop for Windows (灵活性与隔离性)
- 基本配置 Redis
- 启动、停止和连接 Redis
- 将 Redis 安装为 Windows 服务 (仅适用于方法一)
- 基本 Redis 命令测试
- 常见问题与故障排除
- 总结与最佳实践建议
1. Redis 简介及其在 Windows 上的应用场景
什么是 Redis?
- 内存存储: Redis 主要将数据存储在内存中,这使得其读写速度极快,通常能达到每秒数十万次的操作。
- 键值存储: 数据以键值对的形式存储,类似于字典或哈希表。
- 丰富的数据结构: 支持多种数据类型,如字符串 (Strings)、哈希 (Hashes)、列表 (Lists)、集合 (Sets)、有序集合 (Sorted Sets)、位图 (Bitmaps)、HyperLogLogs、地理空间索引 (Geospatial indexes) 和流 (Streams)。
- 持久化: 支持 RDB (快照) 和 AOF (追加日志) 两种持久化方式,确保在服务器重启后数据不丢失。
- 高可用与扩展: 支持主从复制 (Master-Slave Replication) 和哨兵 (Sentinel) 模式实现高可用,通过 Redis Cluster 实现分布式部署。
- 多功能: 可用作缓存、数据库、消息代理、会话存储、排行榜、计数器等。
在 Windows 上使用 Redis 的场景
- 本地开发环境: 开发者在 Windows 机器上进行应用程序开发时,需要一个本地的 Redis 实例进行功能测试和调试。
- 快速原型验证: 在项目早期阶段,快速搭建一个 Redis 环境来验证技术方案或功能。
- 学习与实验: 初学者学习 Redis 命令和特性时,在熟悉的 Windows 环境下操作更为便捷。
- 小型内部工具: 某些对性能和稳定性要求不高的内部管理工具或脚本,可能临时需要 Redis 支持。
重要提示: 尽管可以在 Windows 上运行 Redis,但官方并未提供原生的 Windows 支持。由 Microsoft Open Tech (后归档至 MicrosoftArchive) 维护的 Windows 版本已不再积极更新,可能落后于最新的 Redis 特性且存在潜在的稳定性和性能问题。对于生产环境,强烈建议使用 Linux 或基于 Linux 的容器化方案 (如 Docker)。
2. 安装前的准备工作
在开始安装之前,请确保满足以下条件:
- 操作系统: Windows 10 或 Windows 11 (推荐 64 位版本)。对于 WSL2,需要特定版本的 Windows 10 (版本 1903 或更高,内部版本 18362 或更高) 或 Windows 11。
- 管理员权限: 大部分安装过程(尤其是 WSL 和 Docker 的设置,以及将 Redis 安装为服务)需要管理员权限。
- 网络连接: 下载安装包或 Docker 镜像需要稳定的网络连接。
- 命令行工具: 熟悉使用 Windows 命令提示符 (CMD) 或 PowerShell。
3. 安装方法一:使用 MicrosoftArchive 提供的 Windows 版本
这是最直接在 Windows 上运行 Redis 的方法,由 Microsoft Open Tech 团队早期移植和维护,现已归档。虽然版本较旧且不再更新,但对于快速启动和基本测试来说足够方便。
步骤:
-
下载 Redis for Windows:
- 访问 MicrosoftArchive 的 Redis GitHub Releases 页面:https://github.com/microsoftarchive/redis/releases
- 找到最新的稳定版本(通常是 3.x 或某个 5.0 的预发布版,请注意其发布日期较早)。
- 根据您的系统选择下载
.zip
压缩包或.msi
安装程序。.zip
包提供了更大的灵活性,.msi
则简化了安装过程。
-
安装 (以 .zip 包为例):
- 下载
Redis-x64-xxxx.zip
文件。 - 在你希望安装 Redis 的位置(例如
C:\Program Files\Redis
或D:\Dev\Redis
)创建一个新文件夹。 - 将下载的
.zip
文件解压到你创建的文件夹中。解压后,你会看到类似以下的文件:redis-server.exe
: Redis 服务器程序。redis-cli.exe
: Redis 命令行客户端。redis-benchmark.exe
: Redis 性能测试工具。redis-check-aof.exe
: AOF 文件修复工具。redis-check-rdb.exe
: RDB 文件检查工具。redis.windows.conf
: 默认的 Windows 配置文件。redis.windows-service.conf
: 用于 Windows 服务的配置文件示例。- (可能还有其他文档或许可证文件)
- 下载
-
运行 Redis 服务器:
- 打开命令提示符 (CMD) 或 PowerShell。
- 使用
cd
命令切换到你解压 Redis 的目录。例如:cd "C:\Program Files\Redis"
- 执行以下命令启动 Redis 服务器,并使用默认配置文件:
bash
redis-server.exe redis.windows.conf - 如果一切顺利,你将看到 Redis 服务器启动的日志信息,包括监听的端口(默认为 6379)和进程 ID。此时,服务器正在前台运行,关闭该命令行窗口将终止 Redis 服务器。
-
运行 Redis 客户端进行测试:
- 不要关闭 正在运行 Redis 服务器的命令行窗口。
- 重新打开 一个新的命令提示符 (CMD) 或 PowerShell 窗口。
- 切换到 Redis 目录:
cd "C:\Program Files\Redis"
- 执行以下命令连接到本地正在运行的 Redis 服务器:
bash
redis-cli.exe - 连接成功后,提示符会变为
127.0.0.1:6379>
。 - 尝试输入
PING
命令,如果服务器正常响应PONG
,则表示安装和启动成功。 - 输入
QUIT
退出客户端。
优点:
* 安装简单直接,无需额外依赖。
* 对 Windows 环境的集成较好(可以注册为服务)。
缺点:
* 版本老旧,缺乏最新 Redis 特性。
* 非官方维护,可能存在未修复的 Bug 或性能问题。
* 不推荐用于生产环境。
4. 安装方法二:使用 Windows Subsystem for Linux (WSL/WSL2)
WSL 允许你在 Windows 上直接运行 Linux 二进制文件。WSL2 提供了更好的性能和兼容性,因为它使用了一个真正的 Linux 内核。这是在 Windows 上运行 Redis 的推荐方式,因为它能提供接近原生 Linux 的体验,便于与生产环境保持一致。
步骤:
-
启用 WSL 功能:
- 以管理员身份打开 PowerShell。
- 启用 WSL 基础功能:
powershell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart - (推荐)启用虚拟机平台功能 (WSL2 需要):
powershell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart - 重启计算机 以应用更改。
-
(推荐)将 WSL 默认版本设置为 WSL2:
- 重启后,以管理员身份打开 PowerShell。
- 执行以下命令:
powershell
wsl --set-default-version 2 - 如果提示需要更新内核,请访问提示中的链接下载并安装 Linux 内核更新包。
-
安装 Linux 发行版:
- 打开 Microsoft Store。
- 搜索你喜欢的 Linux 发行版,例如 “Ubuntu” (推荐)、”Debian” 或 “OpenSUSE”。
- 点击 “获取” 或 “安装”。
- 安装完成后,从开始菜单启动你安装的 Linux 发行版(例如 Ubuntu)。首次启动时,需要设置一个 Linux 用户名和密码。请记住它们。
-
在 Linux 发行版中安装 Redis:
- 在你启动的 Linux 发行版终端(例如 Ubuntu 终端)中,首先更新包列表:
bash
sudo apt update
sudo apt upgrade -y # 可选但推荐 - 安装 Redis 服务器:
bash
sudo apt install redis-server -y
(对于某些发行版,包名可能是redis
)
- 在你启动的 Linux 发行版终端(例如 Ubuntu 终端)中,首先更新包列表:
-
启动 Redis 服务:
- 安装完成后,Redis 服务通常会自动启动。你可以检查其状态:
bash
sudo service redis-server status - 如果未运行,可以手动启动:
bash
sudo service redis-server start - 若要停止服务:
bash
sudo service redis-server stop - 若要重启服务:
bash
sudo service redis-server restart
- 安装完成后,Redis 服务通常会自动启动。你可以检查其状态:
-
连接 Redis 客户端:
- 在同一个 Linux 终端中,输入以下命令连接到 Redis:
bash
redis-cli - 同样,使用
PING
命令测试连接,返回PONG
即表示成功。 - 输入
QUIT
退出。
- 在同一个 Linux 终端中,输入以下命令连接到 Redis:
-
从 Windows 访问 WSL 中的 Redis:
- WSL2 的网络是与 Windows 共享的(通过虚拟网络)。默认情况下,WSL 中的 Redis 服务监听在
127.0.0.1
(localhost),端口为6379
。 - 你可以直接从 Windows 上的应用程序或工具(如另一个 Redis 客户端、代码等)连接到
localhost:6379
来访问 WSL 中运行的 Redis 实例。
- WSL2 的网络是与 Windows 共享的(通过虚拟网络)。默认情况下,WSL 中的 Redis 服务监听在
优点:
* 运行的是原生 Linux 版本的 Redis,版本更新及时,性能好,稳定性高。
* 开发环境与生产环境(通常是 Linux)保持高度一致。
* 可以利用 Linux 生态的各种工具。
缺点:
* 初始设置 WSL 和 Linux 发行版相对复杂一些。
* 需要占用一定的磁盘空间和内存资源来运行 Linux 子系统。
5. 安装方法三:使用 Docker Desktop for Windows
Docker 是一个流行的容器化平台,允许你在隔离的环境中打包和运行应用程序。使用 Docker 安装 Redis 非常方便,并且可以确保环境的一致性。
步骤:
-
安装 Docker Desktop for Windows:
- 访问 Docker 官方网站:https://www.docker.com/products/docker-desktop/
- 下载并安装 Docker Desktop for Windows。安装过程可能需要启用 Hyper-V 或 WSL2 后端(推荐 WSL2)。
- 根据安装程序的指示完成安装并重启计算机。
- 启动 Docker Desktop,并等待其状态变为 “Running”。
-
拉取 Redis 镜像:
- 打开命令提示符 (CMD) 或 PowerShell。
- 执行以下命令从 Docker Hub 拉取官方的 Redis 镜像:
bash
docker pull redis
(默认会拉取latest
标签,你也可以指定版本,如docker pull redis:7.0
)
-
运行 Redis 容器:
- 执行以下命令来创建并运行一个 Redis 容器:
bash
docker run --name my-redis-container -p 6379:6379 -d redisdocker run
: 运行一个新容器。--name my-redis-container
: 为容器指定一个名称(方便管理)。-p 6379:6379
: 将主机的 6379 端口映射到容器的 6379 端口。这样你就可以通过localhost:6379
从 Windows 访问容器内的 Redis。第一个6379
是主机端口,第二个是容器端口。-d
: 以分离模式 (detached mode) 在后台运行容器。redis
: 使用哪个镜像来创建容器。
- 执行以下命令来创建并运行一个 Redis 容器:
-
检查容器状态:
- 你可以使用以下命令查看正在运行的容器:
bash
docker ps - 你应该能看到名为
my-redis-container
的容器正在运行。
- 你可以使用以下命令查看正在运行的容器:
-
连接 Redis 客户端:
- 方法一:使用容器内的 redis-cli:
bash
docker exec -it my-redis-container redis-clidocker exec
: 在运行的容器内执行命令。-it
: 分配一个伪 TTY 并保持 STDIN 打开,允许交互式操作。my-redis-container
: 容器名称。redis-cli
: 要在容器内执行的命令。
连接成功后,使用PING
测试,QUIT
退出。
- 方法二:使用 Windows 上的 redis-cli (如果已通过方法一安装) 或其他 GUI 工具:
由于你在docker run
命令中使用了-p 6379:6379
映射了端口,你可以直接从 Windows 连接到localhost:6379
。例如,如果你安装了方法一的redis-cli.exe
,可以打开新的 CMD 窗口,切换到 Redis 目录,然后运行redis-cli.exe
。
- 方法一:使用容器内的 redis-cli:
-
停止和移除容器:
- 停止容器:
docker stop my-redis-container
- 启动已停止的容器:
docker start my-redis-container
- 移除容器 (需要先停止):
docker rm my-redis-container
- 停止容器:
优点:
* 环境隔离,不影响主机系统。
* 易于部署、复制和管理,版本控制方便。
* 跨平台一致性好。
缺点:
* 需要先安装和运行 Docker Desktop,对系统资源有一定要求。
* 网络和存储配置相对虚拟机或直接安装可能稍微复杂一点。
6. 基本配置 Redis
无论使用哪种方法安装,Redis 的行为都由其配置文件控制。
- 方法一 (MicrosoftArchive): 配置文件通常是解压目录下的
redis.windows.conf
。 - 方法二 (WSL): 配置文件通常位于
/etc/redis/redis.conf
。你需要使用sudo
和文本编辑器 (如nano
或vim
) 来修改:sudo nano /etc/redis/redis.conf
。 - 方法三 (Docker): 默认情况下,Docker 容器使用镜像内置的默认配置。要使用自定义配置,你需要将本地的
redis.conf
文件挂载到容器内,或基于官方镜像构建自己的镜像。- 挂载配置: 先在本地创建一个
my-redis.conf
文件,然后运行时使用-v
参数:
bash
# 假设你的配置文件在 C:\my-redis-config\my-redis.conf
# 注意 Windows 路径转换为 Docker 能识别的格式
docker run --name my-redis-container -p 6379:6379 -v /c/my-redis-config/my-redis.conf:/usr/local/etc/redis/redis.conf -d redis redis-server /usr/local/etc/redis/redis.conf
- 挂载配置: 先在本地创建一个
一些常用的配置项:
bind 127.0.0.1
: (安全设置) 默认只允许本地连接。如果你需要从其他机器访问(例如,在 WSL 中运行 Redis,想从局域网内其他 Windows 机器访问),需要将其改为bind 0.0.0.0
或特定 IP 地址。警告: 绑定到0.0.0.0
会使 Redis 暴露在所有网络接口上,请确保有防火墙或密码保护。port 6379
: Redis 监听的端口,可以修改为其他端口。requirepass yourpassword
: 设置客户端连接密码。强烈建议设置密码以保护你的 Redis 实例。设置后,客户端连接需要使用AUTH yourpassword
命令进行认证。logfile ""
(或/var/log/redis/redis-server.log
in WSL): 指定日志文件的路径。对于 Windows 版本,可能需要指定一个 Windows 风格的路径,如logfile "C:/Program Files/Redis/redis_log.log"
。dir ./
(或/var/lib/redis
in WSL): 指定 RDB 快照和 AOF 日志文件的存储目录。对于 Windows 版本,确保 Redis 进程有权限写入该目录。
修改配置后,需要重启 Redis 服务器才能生效。
- 方法一: 关闭服务器窗口,然后使用
redis-server.exe your-config-file.conf
重启。 - 方法二:
sudo service redis-server restart
。 - 方法三: 停止并移除旧容器 (
docker stop/rm
),然后使用更新的docker run
命令(带有挂载的配置文件)重新创建容器。
7. 启动、停止和连接 Redis
- 启动:
- 方法一 (前台):
redis-server.exe redis.windows.conf
- 方法二:
sudo service redis-server start
- 方法三:
docker start my-redis-container
(如果容器已创建但停止) 或docker run ...
(如果是首次运行)
- 方法一 (前台):
- 停止:
- 方法一 (前台): 在服务器窗口按
Ctrl + C
。 - 方法二:
sudo service redis-server stop
- 方法三:
docker stop my-redis-container
- 方法一 (前台): 在服务器窗口按
- 连接 (使用 redis-cli):
- 方法一:
redis-cli.exe
(如果 Redis 在本地默认端口且无密码) - 方法二:
redis-cli
(在 WSL 终端内) - 方法三:
docker exec -it my-redis-container redis-cli
或 从 Windows 使用redis-cli.exe -h localhost -p 6379
- 带密码连接:
redis-cli -a yourpassword
- 连接指定主机和端口:
redis-cli -h <hostname> -p <port>
(如果 Redis 不在本地或使用非默认端口) - 连接后,如果设置了密码,可能还需要输入
AUTH yourpassword
。
- 方法一:
8. 将 Redis 安装为 Windows 服务 (仅适用于方法一)
如果你使用的是 MicrosoftArchive 的 Windows 版本,可以将其安装为 Windows 服务,使其在后台运行并随系统启动。
步骤:
-
准备服务配置文件:
- 建议复制一份
redis.windows.conf
并重命名为redis.windows-service.conf
(或使用自带的同名文件)。 - 编辑
redis.windows-service.conf
,确保logfile
和dir
指向有效的、具有写入权限的路径。这是必需的,因为服务在后台运行,没有控制台输出。例如:
logfile "C:/Program Files/Redis/Logs/redis_server.log"
dir "C:/Program Files/Redis/Data"
(请确保Logs
和Data
目录已创建)
- 建议复制一份
-
安装服务:
- 以管理员身份打开 CMD 或 PowerShell。
- 切换到 Redis 安装目录。
- 执行以下命令安装服务:
bash
redis-server --service-install redis.windows-service.conf --loglevel verbose --service-name "Redis"--service-install
: 指定要安装为服务。redis.windows-service.conf
: 服务使用的配置文件。--loglevel verbose
: 设置服务日志级别(可选)。--service-name "Redis"
: 指定服务的名称(显示在 Windows 服务列表中)。
-
管理服务:
- 启动服务:
redis-server --service-start --service-name "Redis"
或通过 Windows 服务管理器 (services.msc
) 启动名为 “Redis” 的服务。 - 停止服务:
redis-server --service-stop --service-name "Redis"
或通过services.msc
停止服务。 - 卸载服务:
redis-server --service-uninstall --service-name "Redis"
- 启动服务:
安装为服务后,Redis 将在后台运行,即使关闭了命令行窗口。
9. 基本 Redis 命令测试
连接到 Redis 服务器后 (redis-cli
),可以执行一些基本命令来验证其功能:
PING
- 预期响应:
PONG
(测试连接)
- 预期响应:
SET mykey "Hello Windows Redis"
- 预期响应:
OK
(设置一个字符串键)
- 预期响应:
GET mykey
- 预期响应:
"Hello Windows Redis"
(获取键的值)
- 预期响应:
INCR counter
- 预期响应:
(integer) 1
(将名为 counter 的键的值加 1,如果键不存在则创建并设为 1)
- 预期响应:
INCR counter
- 预期响应:
(integer) 2
(再次加 1)
- 预期响应:
KEYS *
- 预期响应: 列出所有键 (例如
1) "mykey" 2) "counter"
)。注意: 在生产环境中,KEYS *
会阻塞服务器,应避免使用,尤其是在键很多的情况下。可以使用SCAN
命令代替。
- 预期响应: 列出所有键 (例如
FLUSHDB
- 预期响应:
OK
(删除当前数据库的所有键)。谨慎使用!
- 预期响应:
FLUSHALL
- 预期响应:
OK
(删除所有数据库的所有键)。极度谨慎使用!
- 预期响应:
INFO
- 预期响应: 显示大量关于 Redis 服务器状态和统计信息。
QUIT
- 退出客户端。
10. 常见问题与故障排除
- 连接被拒绝 (Connection Refused):
- 检查 Redis 服务器是否正在运行。
- 检查连接的主机和端口是否正确。
- 检查 Redis 配置文件中的
bind
指令。如果设置为127.0.0.1
,则只允许本地连接。 - 检查防火墙设置 (Windows 防火墙或 WSL/Docker 的网络配置),确保端口
6379
(或你配置的端口) 是开放的。
- 端口已被占用 (Port already in use):
- 可能有另一个 Redis 实例或应用程序占用了该端口。使用
netstat -ano | findstr <port>
(Windows CMD) 或sudo ss -tulnp | grep <port>
(Linux/WSL) 查找占用端口的进程,并停止它,或者修改 Redis 配置文件中的port
指令,使用一个未被占用的端口。
- 可能有另一个 Redis 实例或应用程序占用了该端口。使用
- 认证失败 (Authentication required):
- Redis 服务器配置了密码 (
requirepass
)。使用redis-cli -a yourpassword
连接,或连接后使用AUTH yourpassword
命令进行认证。
- Redis 服务器配置了密码 (
- 权限问题 (Permission denied):
- 尤其是在将 Redis 作为服务运行或配置了持久化 (
dir
) 或日志 (logfile
) 时,确保 Redis 进程 (或运行服务的用户账户) 对指定的目录和文件有写入权限。
- 尤其是在将 Redis 作为服务运行或配置了持久化 (
- WSL2 无法从 Windows 访问:
- 确保 WSL2 中的 Redis 服务正在运行并且监听在
0.0.0.0
或正确的 IP 地址(如果需要跨网络访问)。对于仅本地访问,127.0.0.1
即可。 - 检查 Windows 防火墙规则,可能需要为 WSL 的虚拟网络适配器或特定端口添加入站规则。
- 确保 WSL2 中的 Redis 服务正在运行并且监听在
- Docker 容器无法访问:
- 确保
docker run
命令中使用了正确的端口映射 (-p host_port:container_port
)。 - 确保容器正在运行 (
docker ps
)。 - 检查 Docker Desktop 的网络设置和防火墙。
- 确保
11. 总结与最佳实践建议
在 Windows 上安装和运行 Redis 是完全可行的,为开发者和学习者提供了极大的便利。我们探讨了三种主要方法:
- MicrosoftArchive 版本: 最简单直接,适合快速上手和基本测试,但版本陈旧,不推荐用于严肃开发或生产。
- WSL/WSL2: 强烈推荐的方式,提供近乎原生的 Linux 环境,性能好,版本新,与生产环境一致性高。
- Docker: 提供了良好的隔离性、可移植性和版本管理能力,也是现代开发中非常流行和推荐的方式。
最佳实践建议:
- 优先选择 WSL2 或 Docker: 为了获得更好的性能、稳定性和与生产环境的一致性,优先使用 WSL2 或 Docker。
- 始终设置密码: 使用
requirepass
保护你的 Redis 实例,即使在开发环境中也是个好习惯。 - 谨慎配置
bind
: 仅在确实需要时才将bind
设置为0.0.0.0
,并确保有防火墙或其他安全措施。 - 了解持久化: 如果需要数据持久化,学习 RDB 和 AOF 的工作原理及其配置。
- 监控资源: Redis 是内存密集型的,注意监控其内存使用情况,尤其是在资源有限的开发机上。
- 参考官方文档: 对于 Redis 的深入使用、高级特性和配置,请务必查阅 Redis 官方文档 (https://redis.io/documentation)。
希望本篇详细的 Windows Redis 安装指南能帮助您成功在 Windows 环境下搭建并开始使用 Redis。祝您使用愉快!