Redis Windows 安装详细步骤 – wiki基地


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 系统满足基本要求:

  1. 操作系统: Windows 10 或 Windows Server 2012 R2 及以上版本(对于 WSL2,需要较新版本的 Windows 10/11)。
  2. 系统架构: 建议使用 64 位操作系统,因为 Redis 会消耗较多内存。
  3. 管理员权限: 部分安装步骤(如安装为 Windows 服务、启用 WSL 功能)需要管理员权限。
  4. 网络连接: 下载 Redis 安装包或 Docker 镜像需要稳定的网络连接。
  5. (可选) 命令行工具: 熟悉 Windows 命令提示符 (cmd) 或 PowerShell 的基本操作。
  6. (可选) 文本编辑器: 用于编辑 Redis 配置文件,如 Notepad++, VS Code 等。

重要提示: 鉴于 Redis 官方对 Windows 的非原生支持,以及 MSOpenTech 版本的滞后性,强烈建议在生产环境中使用 Linux 服务器部署 Redis。在 Windows 上运行 Redis 主要适用于开发和测试目的。对于追求更高稳定性和性能的 Windows 用户,使用 WSL2 或 Docker 是更优的选择,因为它们能提供近乎原生的 Linux 环境。

二、安装方法详解

我们将介绍三种在 Windows 上安装 Redis 的主流方法:

  1. 使用 Microsoft 维护的 Windows 版本 (MSOpenTech/MicrosoftArchive): 这是较早期的直接 Windows 移植版。
  2. 使用 Windows Subsystem for Linux (WSL): 在 Windows 中运行一个 Linux 子系统,然后在 Linux 环境中安装原生 Redis。(推荐)
  3. 使用 Docker Desktop for Windows: 通过容器化技术运行官方 Redis 镜像。(推荐)

方法一:安装 Microsoft 维护的 Windows 版本 (MSOpenTech/MicrosoftArchive)

这是最直接在 Windows 上运行 Redis 的方法之一,但请注意此版本可能落后于 Redis 的最新特性和修复。

步骤 1:下载 Redis for Windows

  1. 访问 Redis 的 MSOpenTech/MicrosoftArchive GitHub 仓库的 Releases 页面:https://github.com/microsoftarchive/redis/releases
  2. 找到一个相对较新的稳定版本(例如,寻找带有 *.zip*.msi 后缀的文件)。通常建议下载 .zip 包,因为它提供了更大的灵活性,并且不需要安装过程,可以直接解压使用。假设我们下载 Redis-x64-*.zip 文件。
  3. 将下载的 .zip 文件保存到您选择的目录,例如 C:\DevTools\Redis

步骤 2:解压文件

  1. 导航到您保存 .zip 文件的目录 (C:\DevTools\Redis)。
  2. 右键点击 .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:直接运行 (前台模式)

    1. 打开命令提示符 (cmd) 或 PowerShell。建议以管理员身份运行,尤其是在后续可能需要将其安装为服务时。
    2. 使用 cd 命令切换到 Redis 的解压目录:
      bash
      cd C:\DevTools\Redis\Redis-x64-3.0.504
    3. 执行 redis-server.exe 启动服务器。默认情况下,它会加载同目录下的 redis.windows.conf 文件(如果存在)。
      bash
      redis-server.exe

      或者,您可以明确指定配置文件:
      bash
      redis-server.exe redis.windows.conf
    4. 如果一切顺利,您将在命令行窗口看到 Redis 的启动日志,包括版本号、运行模式、监听端口(默认为 6379)等信息。服务器将在前台运行,关闭此窗口将终止 Redis 服务器。
  • 方式 B:安装为 Windows 服务 (后台模式,推荐用于持续运行)

    1. 确保您已以管理员身份打开命令提示符或 PowerShell。
    2. 切换到 Redis 目录:
      bash
      cd C:\DevTools\Redis\Redis-x64-3.0.504
    3. 使用 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 文件,确保其中的 logfiledir (工作目录,用于存放持久化文件) 指向有效的路径。如果需要,可以先修改此配置文件。例如,设置日志文件路径:logfile "C:/DevTools/Redis/Logs/redis_log.txt" (请确保 Logs 目录存在)。
    4. 安装成功后,您可以使用 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
    5. 安装为服务后,Redis 将在后台运行,并且可以配置为随 Windows 启动自动运行(通过 services.msc 设置启动类型为“自动”)。

步骤 5:验证 Redis 是否运行

  1. 打开一个新的命令提示符或 PowerShell 窗口。
  2. 切换到 Redis 目录:
    bash
    cd C:\DevTools\Redis\Redis-x64-3.0.504
  3. 运行 Redis 客户端 redis-cli.exe
    bash
    redis-cli.exe

    默认情况下,它会尝试连接到 127.0.0.1:6379
  4. 连接成功后,您会看到提示符变为 127.0.0.1:6379>
  5. 输入 ping 命令,如果服务器正常运行,应返回 PONG
    127.0.0.1:6379> ping
    PONG
  6. 尝试执行一些基本命令:
    127.0.0.1:6379> set mykey "Hello Redis on Windows!"
    OK
    127.0.0.1:6379> get mykey
    "Hello Redis on Windows!"
  7. 输入 exitquit 退出 redis-cli

如果您能成功执行这些步骤,说明 Redis (MSOpenTech 版本) 已在您的 Windows 系统上成功安装并运行。

方法二:使用 Windows Subsystem for Linux (WSL) 安装原生 Redis

这是目前在 Windows 上使用 Redis 的推荐方法,因为它允许您运行未经修改的、官方的 Linux 版 Redis,具有更好的兼容性、性能和最新的特性。

步骤 1:启用 WSL 功能

  1. 以管理员身份打开 PowerShell 或命令提示符。
  2. 执行以下命令启用 WSL 功能:
    powershell
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  3. 对于 WSL2(提供更好的性能和兼容性,需要较新 Windows 版本和虚拟化支持),还需要启用“虚拟机平台”功能:
    powershell
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  4. 重启计算机 以应用更改。
  5. (推荐) 安装 WSL2 更新:访问 https://aka.ms/wsl2kernel 下载并安装最新的 Linux 内核更新包。
  6. 将 WSL 默认版本设置为 WSL2(可选,但推荐):
    powershell
    wsl --set-default-version 2

步骤 2:安装 Linux 发行版

  1. 打开 Microsoft Store。
  2. 搜索您喜欢的 Linux 发行版,例如 “Ubuntu”, “Debian”, “openSUSE” 等。Ubuntu 是一个非常流行的选择。
  3. 选择一个发行版并点击“获取”或“安装”。
  4. 安装完成后,您可以从“开始”菜单启动该 Linux 发行版。

步骤 3:初始化 Linux 发行版

  1. 首次启动时,系统会提示您创建一个 Unix 用户帐户(用户名和密码)。请按照提示操作,这个帐户将用于在 Linux 环境中执行命令(包括需要 sudo 权限的操作)。

步骤 4:在 Linux 环境中安装 Redis

  1. 启动您的 Linux 发行版(例如 Ubuntu)。
  2. 首先,更新包列表,确保获取最新的软件信息:
    bash
    sudo apt update

    系统会要求您输入之前创建的 Linux 用户密码。
  3. 接着,升级已安装的包(可选,但推荐):
    bash
    sudo apt upgrade
  4. 使用包管理器安装 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 安装

  1. 在 WSL Linux 终端中,运行 Redis 客户端:
    bash
    redis-cli
  2. 您应该能连接到本地运行的 Redis 服务器(默认监听 127.0.0.1:6379)。
  3. 测试连接:
    127.0.0.1:6379> ping
    PONG
  4. 执行基本操作:
    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!"
  5. 输入 exit 退出。

从 Windows 访问 WSL 中的 Redis: WSL2 的网络架构使得您可以直接从 Windows 主机通过 localhost127.0.0.1 访问在 WSL 内部运行的服务。因此,您可以在 Windows 上使用任何 Redis 图形客户端或代码库,连接到 localhost:6379 来访问 WSL 中运行的 Redis 实例。

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

Docker 提供了一种轻量级、可移植的容器化解决方案,是在 Windows 上运行 Redis 的另一个推荐方法,特别适合需要隔离环境或管理多个服务实例的场景。

步骤 1:安装 Docker Desktop for Windows

  1. 访问 Docker 官方网站:https://www.docker.com/products/docker-desktop/
  2. 下载适用于 Windows 的 Docker Desktop 安装程序。
  3. 运行安装程序,并按照向导指示完成安装。这可能需要启用 Hyper-V 或 WSL2 后端(Docker Desktop 会自动处理或提示您进行设置)。
  4. 安装完成后,启动 Docker Desktop。等待 Docker 引擎启动(任务栏通知区域的 Docker 图标会变为稳定状态)。

步骤 2:拉取 Redis 官方镜像

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

    如果您需要特定版本的 Redis,可以指定标签,例如:
    bash
    docker pull redis:6.2

步骤 3:运行 Redis 容器

  1. 使用 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 镜像)。
  2. 如果您需要持久化数据(即使容器停止或删除后数据仍然保留),可以使用 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 yes

    • docker volume create redis_data: 创建一个名为 redis_data 的 Docker 卷。
    • -v redis_data:/data: 将 redis_data 卷挂载到容器内的 /data 目录(Redis 默认的数据存储目录)。
    • redis-server --appendonly yes: 在容器启动时传递给 Redis 服务器的命令,这里是启用 AOF 持久化。
  3. 如果您想使用自定义配置文件:

    • 先在主机上创建一个配置文件,例如 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 安装

  1. 由于您已将端口映射到主机,可以直接在 Windows 上使用 redis-cli(如果通过方法一安装过)或任何图形化 Redis 客户端连接到 localhost:6379
  2. 或者,您可以使用 Docker 直接在运行的容器内执行 redis-cli
    bash
    docker exec -it my-redis-instance redis-cli

    • docker exec: 在运行的容器内执行命令。
    • -it: 分配一个交互式 TTY (终端)。
    • my-redis-instance: 容器名称。
    • redis-cli: 要在容器内执行的命令。
  3. 进入 redis-cli 后,同样使用 pingset/get 等命令进行测试。

三、Redis 配置基础

无论使用哪种安装方法,了解和修改 Redis 配置都非常重要。Redis 的行为由一个配置文件(通常是 redis.confredis.windows.conf)控制。

配置文件位置:

  • MSOpenTech 版本: 通常与 redis-server.exe 在同一目录,名为 redis.windows.confredis.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-serversudo service redis-server restart 重启服务。
  • 对于 Docker 版本,如果修改了挂载的配置文件,需要重启容器 docker restart my-redis-instance。如果修改了启动命令(如添加 --requirepass),则需要停止并删除旧容器,然后使用新的 docker run 命令创建新容器。

四、常见问题与故障排除

  1. 端口冲突: 如果启动时报错提示端口 6379 已被占用,请检查是否有其他 Redis 实例或应用程序正在使用该端口。可以使用 netstat -ano | findstr "6379" (Windows) 或 sudo ss -tulnp | grep 6379 (Linux/WSL) 查看。解决方法是停止占用端口的进程,或者修改 Redis 配置文件的 port 指令,并使用新端口连接。
  2. 防火墙问题: 如果无法从其他机器或甚至本机(当 bind 设置非 127.0.0.1 时)连接 Redis,请检查 Windows 防火墙或任何其他安全软件是否阻止了 Redis 端口(默认为 6379)的入站连接。需要添加入站规则允许该端口的 TCP 连接。
  3. 权限问题:
    • 安装 Windows 服务时提示权限不足 -> 确保以管理员身份运行命令提示符/PowerShell。
    • Redis 无法写入日志文件或持久化文件 -> 检查配置文件中指定的 logfiledir 路径是否存在,以及 Redis 运行用户(对于 Windows 服务,通常是 Local Service 或 Network Service;对于 WSL,是 redis 用户)是否有写入权限。
  4. WSL 问题:
    • WSL 无法启动或网络不通 -> 确保 WSL 功能已正确启用,尝试 wsl --shutdown 后再重新启动 Linux 发行版。检查 Windows 网络设置。
    • systemctl 命令在某些旧版 WSL1 或特定发行版中不可用 -> 尝试使用 service 命令管理服务。
  5. Docker 问题:
    • Docker Desktop 无法启动 -> 检查系统虚拟化是否已在 BIOS/UEFI 中启用。确保满足 Docker Desktop 的系统要求。查看 Docker 日志获取详细错误信息。
    • 容器无法启动或反复退出 -> 使用 docker logs <container_name> 查看容器日志,找出错误原因(如配置错误、端口冲突、权限问题等)。
    • 数据丢失 -> 确保使用了 Docker 卷进行持久化,并且卷已正确挂载。

五、安全注意事项

在 Windows 上运行 Redis 时,尤其是在可能被外部访问的环境中,务必注意安全:

  1. 设置密码: 使用 requirepass 配置项为 Redis 设置一个强密码。客户端连接时需要使用 AUTH <password> 命令进行认证。
  2. 绑定 IP 地址: 如果 Redis 不需要被网络上所有机器访问,使用 bind 指令将其绑定到特定的 IP 地址(例如 bind 127.0.0.1 只允许本机访问,或 bind <内网IP> 只允许内网访问)。避免使用 bind 0.0.0.0 除非确实需要且有防火墙保护。
  3. 重命名或禁用危险命令: 可以通过配置 rename-command 来重命名或禁用像 FLUSHALL, FLUSHDB, KEYS, CONFIG 等可能造成破坏或泄露信息的命令。例如:rename-command FLUSHALL "" (禁用)。
  4. 使用防火墙: 配置 Windows 防火墙或其他网络防火墙,只允许受信任的 IP 地址访问 Redis 端口。
  5. 非默认端口: 将 Redis 运行在非标准的端口(修改 port 配置)可以在一定程度上降低被自动扫描工具发现的风险。
  6. 定期更新: 尽管 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 以获得最佳性能和稳定性。


发表评论

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

滚动至顶部