Windows 安装 Redis 快速入门指南 – wiki基地


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。

本文将涵盖以下主要内容:

  1. Redis 简介及其在 Windows 上的应用场景
  2. 安装前的准备工作
  3. 安装方法一:使用 MicrosoftArchive 提供的 Windows 版本 (适用于快速开发/测试)
  4. 安装方法二:使用 Windows Subsystem for Linux (WSL/WSL2) (推荐方式,接近生产环境)
  5. 安装方法三:使用 Docker Desktop for Windows (灵活性与隔离性)
  6. 基本配置 Redis
  7. 启动、停止和连接 Redis
  8. 将 Redis 安装为 Windows 服务 (仅适用于方法一)
  9. 基本 Redis 命令测试
  10. 常见问题与故障排除
  11. 总结与最佳实践建议

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 团队早期移植和维护,现已归档。虽然版本较旧且不再更新,但对于快速启动和基本测试来说足够方便。

步骤:

  1. 下载 Redis for Windows:

    • 访问 MicrosoftArchive 的 Redis GitHub Releases 页面:https://github.com/microsoftarchive/redis/releases
    • 找到最新的稳定版本(通常是 3.x 或某个 5.0 的预发布版,请注意其发布日期较早)。
    • 根据您的系统选择下载 .zip 压缩包或 .msi 安装程序。.zip 包提供了更大的灵活性,.msi 则简化了安装过程。
  2. 安装 (以 .zip 包为例):

    • 下载 Redis-x64-xxxx.zip 文件。
    • 在你希望安装 Redis 的位置(例如 C:\Program Files\RedisD:\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 服务的配置文件示例。
      • (可能还有其他文档或许可证文件)
  3. 运行 Redis 服务器:

    • 打开命令提示符 (CMD) 或 PowerShell。
    • 使用 cd 命令切换到你解压 Redis 的目录。例如:cd "C:\Program Files\Redis"
    • 执行以下命令启动 Redis 服务器,并使用默认配置文件:
      bash
      redis-server.exe redis.windows.conf
    • 如果一切顺利,你将看到 Redis 服务器启动的日志信息,包括监听的端口(默认为 6379)和进程 ID。此时,服务器正在前台运行,关闭该命令行窗口将终止 Redis 服务器。
  4. 运行 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 的体验,便于与生产环境保持一致。

步骤:

  1. 启用 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
    • 重启计算机 以应用更改。
  2. (推荐)将 WSL 默认版本设置为 WSL2:

    • 重启后,以管理员身份打开 PowerShell。
    • 执行以下命令:
      powershell
      wsl --set-default-version 2
    • 如果提示需要更新内核,请访问提示中的链接下载并安装 Linux 内核更新包。
  3. 安装 Linux 发行版:

    • 打开 Microsoft Store。
    • 搜索你喜欢的 Linux 发行版,例如 “Ubuntu” (推荐)、”Debian” 或 “OpenSUSE”。
    • 点击 “获取” 或 “安装”。
    • 安装完成后,从开始菜单启动你安装的 Linux 发行版(例如 Ubuntu)。首次启动时,需要设置一个 Linux 用户名和密码。请记住它们。
  4. 在 Linux 发行版中安装 Redis:

    • 在你启动的 Linux 发行版终端(例如 Ubuntu 终端)中,首先更新包列表:
      bash
      sudo apt update
      sudo apt upgrade -y # 可选但推荐
    • 安装 Redis 服务器:
      bash
      sudo apt install redis-server -y

      (对于某些发行版,包名可能是 redis)
  5. 启动 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
  6. 连接 Redis 客户端:

    • 在同一个 Linux 终端中,输入以下命令连接到 Redis:
      bash
      redis-cli
    • 同样,使用 PING 命令测试连接,返回 PONG 即表示成功。
    • 输入 QUIT 退出。
  7. 从 Windows 访问 WSL 中的 Redis:

    • WSL2 的网络是与 Windows 共享的(通过虚拟网络)。默认情况下,WSL 中的 Redis 服务监听在 127.0.0.1 (localhost),端口为 6379
    • 你可以直接从 Windows 上的应用程序或工具(如另一个 Redis 客户端、代码等)连接到 localhost:6379 来访问 WSL 中运行的 Redis 实例。

优点:
* 运行的是原生 Linux 版本的 Redis,版本更新及时,性能好,稳定性高。
* 开发环境与生产环境(通常是 Linux)保持高度一致。
* 可以利用 Linux 生态的各种工具。

缺点:
* 初始设置 WSL 和 Linux 发行版相对复杂一些。
* 需要占用一定的磁盘空间和内存资源来运行 Linux 子系统。


5. 安装方法三:使用 Docker Desktop for Windows

Docker 是一个流行的容器化平台,允许你在隔离的环境中打包和运行应用程序。使用 Docker 安装 Redis 非常方便,并且可以确保环境的一致性。

步骤:

  1. 安装 Docker Desktop for Windows:

    • 访问 Docker 官方网站:https://www.docker.com/products/docker-desktop/
    • 下载并安装 Docker Desktop for Windows。安装过程可能需要启用 Hyper-V 或 WSL2 后端(推荐 WSL2)。
    • 根据安装程序的指示完成安装并重启计算机。
    • 启动 Docker Desktop,并等待其状态变为 “Running”。
  2. 拉取 Redis 镜像:

    • 打开命令提示符 (CMD) 或 PowerShell。
    • 执行以下命令从 Docker Hub 拉取官方的 Redis 镜像:
      bash
      docker pull redis

      (默认会拉取 latest 标签,你也可以指定版本,如 docker pull redis:7.0)
  3. 运行 Redis 容器:

    • 执行以下命令来创建并运行一个 Redis 容器:
      bash
      docker run --name my-redis-container -p 6379:6379 -d redis

      • docker run: 运行一个新容器。
      • --name my-redis-container: 为容器指定一个名称(方便管理)。
      • -p 6379:6379: 将主机的 6379 端口映射到容器的 6379 端口。这样你就可以通过 localhost:6379 从 Windows 访问容器内的 Redis。第一个 6379 是主机端口,第二个是容器端口。
      • -d: 以分离模式 (detached mode) 在后台运行容器。
      • redis: 使用哪个镜像来创建容器。
  4. 检查容器状态:

    • 你可以使用以下命令查看正在运行的容器:
      bash
      docker ps
    • 你应该能看到名为 my-redis-container 的容器正在运行。
  5. 连接 Redis 客户端:

    • 方法一:使用容器内的 redis-cli:
      bash
      docker exec -it my-redis-container redis-cli

      • docker 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
  6. 停止和移除容器:

    • 停止容器: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 和文本编辑器 (如 nanovim) 来修改: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 服务,使其在后台运行并随系统启动。

步骤:

  1. 准备服务配置文件:

    • 建议复制一份 redis.windows.conf 并重命名为 redis.windows-service.conf (或使用自带的同名文件)。
    • 编辑 redis.windows-service.conf,确保 logfiledir 指向有效的、具有写入权限的路径。这是必需的,因为服务在后台运行,没有控制台输出。例如:
      logfile "C:/Program Files/Redis/Logs/redis_server.log"
      dir "C:/Program Files/Redis/Data"

      (请确保 LogsData 目录已创建)
  2. 安装服务:

    • 以管理员身份打开 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 服务列表中)。
  3. 管理服务:

    • 启动服务: 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 指令,使用一个未被占用的端口。
  • 认证失败 (Authentication required):
    • Redis 服务器配置了密码 (requirepass)。使用 redis-cli -a yourpassword 连接,或连接后使用 AUTH yourpassword 命令进行认证。
  • 权限问题 (Permission denied):
    • 尤其是在将 Redis 作为服务运行或配置了持久化 (dir) 或日志 (logfile) 时,确保 Redis 进程 (或运行服务的用户账户) 对指定的目录和文件有写入权限。
  • WSL2 无法从 Windows 访问:
    • 确保 WSL2 中的 Redis 服务正在运行并且监听在 0.0.0.0 或正确的 IP 地址(如果需要跨网络访问)。对于仅本地访问,127.0.0.1 即可。
    • 检查 Windows 防火墙规则,可能需要为 WSL 的虚拟网络适配器或特定端口添加入站规则。
  • Docker 容器无法访问:
    • 确保 docker run 命令中使用了正确的端口映射 (-p host_port:container_port)。
    • 确保容器正在运行 (docker ps)。
    • 检查 Docker Desktop 的网络设置和防火墙。

11. 总结与最佳实践建议

在 Windows 上安装和运行 Redis 是完全可行的,为开发者和学习者提供了极大的便利。我们探讨了三种主要方法:

  1. MicrosoftArchive 版本: 最简单直接,适合快速上手和基本测试,但版本陈旧,不推荐用于严肃开发或生产。
  2. WSL/WSL2: 强烈推荐的方式,提供近乎原生的 Linux 环境,性能好,版本新,与生产环境一致性高。
  3. 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。祝您使用愉快!


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部