Windows系统下Redis安装的三种实现方案

9 次阅读

Redis本身主要面向类 Unix 环境开发,Windows 并不是官方长期维护的主要平台。因此,在 Windows 系统上安装 Redis 时,通常需要根据开发环境、版本要求以及是否需要 Linux 兼容能力来选择方案。实际使用中比较常见的方式包括 WSL 安装 Redis、Docker 部署 Redis,以及使用 Windows 原生兼容版本 三种实现路径。

一、方案一:通过 WSL 安装 Redis

WSL(Windows Subsystem for Linux)可以让 Windows 直接运行 Linux 环境。对于需要在 Windows 上进行 Redis 开发,同时又希望尽量接近 Linux 服务器运行环境的场景,这种方式比较合适。

1. 安装 WSL

以管理员身份打开 PowerShell,执行:

PowerShell
wsl --install

安装完成后根据提示重启 Windows。重新进入系统后,可以通过以下命令确认 WSL 是否正常:

PowerShell
wsl --status

也可以查看已经安装的 Linux 发行版:

PowerShell
wsl -l -v

如果系统中安装了 Ubuntu,可以直接进入:

PowerShell
wsl

2. 更新软件源

进入 Ubuntu 后执行:

Bash
sudo apt update

然后安装 Redis:

Bash
sudo apt install redis-server

安装结束后检查 Redis 版本:

Bash
redis-server --version

如果能够看到类似下面的信息,说明 Redis 已经安装成功:

Redis server v=7.x.x

3. 启动 Redis

可以直接运行:

Bash
sudo service redis-server start

查看运行状态:

Bash
sudo service redis-server status

部分 WSL 环境也可以使用:

Bash
sudo systemctl start redis-server

具体是否支持 systemctl,取决于当前 WSL 配置。

4. 测试 Redis

启动 Redis 后执行:

Bash
redis-cli

进入 Redis 命令行后测试:

127.0.0.1:6379> SET name redis
OK

127.0.0.1:6379> GET name
"redis"

能够正常写入和读取数据,说明 Redis 服务工作正常。

5. WSL 方案的特点

WSL 的优势在于运行环境更加接近实际 Linux 服务器。开发人员在 Windows 本地编写代码,部署到 Linux 服务器时,Redis 的配置和行为通常更容易保持一致。

不过,WSL 毕竟增加了一层 Linux 子系统,对于只需要简单运行 Redis 的用户来说,配置过程相对复杂一些。


二、方案二:通过 Docker 安装 Redis

如果电脑已经安装 Docker Desktop,使用 Docker 运行 Redis 通常是非常方便的选择。

这种方式最大的特点是环境隔离。Redis 不需要直接安装到 Windows 系统中,而是运行在独立的容器里。

1. 确认 Docker 是否正常

打开 PowerShell 或 CMD:

Bash
docker --version

然后检查 Docker 是否能够正常运行:

Bash
docker info

如果能够正常返回 Docker 服务信息,就可以创建 Redis 容器。

2. 拉取 Redis 镜像

执行:

Bash
docker pull redis

如果项目需要固定版本,也可以指定具体版本,例如:

Bash
docker pull redis:7

生产项目更建议明确指定版本,而不是长期依赖 latest 标签,这样可以减少镜像更新导致的环境变化。

3. 创建 Redis 容器

执行:

Bash
docker run -d ^
  --name redis ^
  -p 6379:6379 ^
  redis:7

如果使用 PowerShell,也可以写成单行:

PowerShell
docker run -d --name redis -p 6379:6379 redis:7

查看容器:

Bash
docker ps

如果能够看到 Redis 容器,并且端口映射显示为:

0.0.0.0:6379->6379/tcp

说明 Redis 已经启动。

4. 使用 Redis CLI

可以直接进入 Redis 容器:

Bash
docker exec -it redis redis-cli

然后执行:

127.0.0.1:6379> SET username admin
OK

127.0.0.1:6379> GET username
"admin"

5. 配置 Redis 数据持久化

仅仅运行容器时,Redis 数据主要存储在容器内部。如果删除容器,数据也可能随之丢失。

开发环境如果希望保留 Redis 数据,可以创建数据卷:

Bash
docker volume create redis-data

然后重新创建容器:

PowerShell
docker run -d --name redis `
  -p 6379:6379 `
  -v redis-data:/data `
  redis:7 `
  redis-server --appendonly yes

其中:

-v redis-data:/data

用于挂载 Docker 数据卷。

redis-server --appendonly yes

则启用 AOF 持久化。

查看数据卷:

Bash
docker volume ls

这种方式比较适合需要反复创建、删除 Redis 环境的开发场景。


三、方案三:使用 Windows 原生 Redis 兼容实现

如果不希望安装 WSL,也不使用 Docker,可以考虑 Windows 原生 Redis 兼容实现。

需要注意的是,Redis 官方并不将 Windows 作为主要支持平台,因此网上一些教程中的 Windows Redis 安装包可能来自第三方项目、历史版本或社区维护版本。使用这类方案时,应特别注意软件来源、版本兼容性和安全问题。

常见做法是下载对应的 Windows Redis 兼容程序,将程序解压到指定目录。

例如:

D:Redis

目录中可能包含:

redis-server.exe
redis-cli.exe
redis.conf

1. 启动 Redis

打开 CMD,进入 Redis 目录:

cmd
cd /d D:Redis

然后执行:

cmd
redis-server.exe

如果配置文件存在,也可以:

cmd
redis-server.exe redis.conf

看到 Redis 正常监听 6379 端口后,可以打开另一个 CMD 窗口。

2. 使用 Redis CLI

执行:

cmd
redis-cli.exe

然后测试:

127.0.0.1:6379> SET test hello
OK

127.0.0.1:6379> GET test
"hello"

3. 设置 Windows 服务

如果使用的 Windows Redis 兼容实现支持服务安装,可以将 Redis 注册为 Windows 服务,从而实现系统启动时自动运行。

具体命令取决于所使用的 Redis Windows 实现版本,因此不要直接套用不同项目的服务注册参数。

对于个人开发环境而言,手动启动 Redis 往往已经足够;如果是团队开发环境,则应统一安装包版本和配置方式。


四、三种 Redis 安装方式如何选择

三种方式解决的是同一个问题,但适用场景并不完全相同。

安装方式环境接近 Linux配置难度隔离性适合场景
WSL高中等较好Linux 开发环境模拟
Docker高较低高项目开发、测试、团队环境
Windows 原生兼容实现较低低一般简单本地开发

如果主要开发 Java、Go、Python、Node.js 等后端项目,并且最终应用部署在 Linux 服务器,WSL 和 Docker 都比较适合。

如果团队已经使用 Docker 管理 MySQL、Nginx、RabbitMQ、MongoDB 等基础服务,那么 Redis 也建议统一放进 Docker 环境,这样可以减少本机环境差异。

如果只是临时测试 Redis 命令,并且不希望额外安装 WSL 或 Docker,则可以考虑 Windows 原生兼容实现。


五、Redis安装完成后的常见配置

Redis 默认使用 6379 端口,可以通过以下命令测试端口是否能够访问:

PowerShell:

PowerShell
Test-NetConnection 127.0.0.1 -Port 6379

如果返回:

TcpTestSucceeded : True

说明 TCP 连接正常。

也可以使用 Redis CLI:

Bash
redis-cli ping

正常情况下返回:

PONG

这是判断 Redis 服务是否正常工作的一个非常直接的方法。


六、配置Redis密码

开发环境中的 Redis 如果只监听本机,一般风险相对较低,但涉及局域网访问或生产环境时,应根据实际安全要求进行认证和网络隔离。

Redis 配置文件中可以设置密码,例如:

requirepass your_password

修改配置后重启 Redis。

连接时可以:

Bash
redis-cli -a your_password

也可以进入 CLI 后执行:

AUTH your_password

需要注意,密码不应该直接写进代码仓库。应用程序中建议通过环境变量、配置中心或其他安全配置机制提供 Redis 凭据。


七、Windows下Redis连接失败的排查方法

1. 检查Redis是否启动

首先执行:

Bash
redis-cli ping

如果出现无法连接 127.0.0.1:6379 的错误,首先检查 Redis 服务是否正在运行。

Docker 环境可以执行:

Bash
docker ps

WSL 环境可以执行:

Bash
sudo service redis-server status

Windows 原生环境则检查 Redis 服务窗口是否存在。

2. 检查6379端口

PowerShell:

PowerShell
netstat -ano | findstr :6379

如果没有任何结果,说明当前可能没有程序监听 6379 端口。

如果发现其他程序占用了该端口,也可以修改 Redis 端口,例如:

port 6380

然后客户端连接:

Bash
redis-cli -p 6380

3. 检查Docker端口映射

Docker 中需要确保执行容器时存在:

-p 6379:6379

可以使用:

Bash
docker port redis

查看实际映射关系。

4. 检查防火墙和网络配置

如果 Redis 只供本机程序使用,建议尽量监听本机地址,不要为了远程连接而随意开放 Redis 端口。

尤其需要避免将未认证的 Redis 服务直接暴露到公网。


八、Java项目连接Windows上的Redis

以 Spring Boot 项目为例,如果 Redis 在本机运行,通常可以配置:

YAML
spring:
  data:
    redis:
      host: 127.0.0.1
      port: 6379
      password: your_password

如果 Redis 没有设置密码,可以根据项目实际配置省略密码项。

使用 Docker 时,只要 Redis 端口已经映射到 Windows 主机,Java 应用通常可以通过:

127.0.0.1:6379

进行连接。

如果 Java 应用本身也运行在 Docker 容器中,则情况不同。此时不应该简单地认为 127.0.0.1 指向 Redis 容器,因为容器中的 localhost 指的是当前容器自身。更合理的方式是让应用容器和 Redis 容器加入同一个 Docker 网络,并使用 Redis 容器名称作为连接地址。

例如:

spring:
  data:
    redis:
      host: redis
      port: 6379

这也是 Docker 环境中非常重要的网络配置区别。


九、开发环境中的版本管理建议

Redis 安装完成后,不要只关注“能不能启动”,还应该关注开发环境的一致性。

例如团队成员分别使用:

Redis 6.x
Redis 7.x
Windows Redis旧版本
Docker Redis新版本

即使基础命令大多数情况下可以正常运行,也可能因为版本、配置或持久化机制差异产生环境问题。

因此,项目最好明确记录 Redis 版本。例如 Docker 项目可以在配置文件中固定:

YAML
services:
  redis:
    image: redis:7
    ports:
      - "6379:6379"

进一步还可以固定到具体的小版本,以提高环境复现能力。


十、总结

Windows 系统安装 Redis 并不只有一种路径。

WSL 更适合希望获得接近 Linux 开发环境的开发人员;Docker 更适合现代项目开发、测试和团队协作;Windows 原生 Redis 兼容实现 则适合对环境要求简单、只需要本地运行 Redis 的场景。

如果项目最终部署在 Linux 服务器,建议优先考虑 WSL 或 Docker,让本地 Redis 环境尽可能接近实际部署环境。无论选择哪种方案,安装完成后都应该通过 redis-cli ping、端口检查以及实际读写测试确认服务状态,同时合理配置密码、端口和持久化策略,避免只完成“安装”而忽略运行安全和数据可靠性。