Windows安装Redis全攻略:三种方案实测对比与避坑指南
2026/9/18 10:44:39 网站建设 项目流程

说实话,每次有读者问我“Windows怎么装Redis”,我都觉得这个问题很有代表性。Redis官方其实一直没发布Windows原生版本,但大家在Windows上开发调试又确实离不开它。对比Linux下一条apt install redis-server就完事,Windows上总要绕几步路,新手很容易卡在下载、解压、权限、服务注册这些细节上。这篇博文我直接把实操过的三种方式全写出来,从最快上手的绿色版、到适合长期使用的服务化安装、再到用WSL2和Docker跑Linux原生版本,每一步都带上我的实测经验和看得见的界面说明,争取让你照着走就能跑通。

整个内容不挑基础,不管你是刚接触Redis的测试同学,还是需要在本地搭一套环境的Java、Python后端,都可以按需选一种方式动手。中间我还把配置密码、设置开机自启、可视化客户端连接这些高频需求一起讲了,顺手埋了几个我掉进去过的坑。

1. 动手前的准备:三种安装方案怎么选

1.1 为什么Windows上没有“官方版”Redis

很多刚接触Redis的人会下意识去redis.io官网找Windows安装包,会发现官网下载区只有Linux、macOS的安装指引,压根没有Windows的事。这里面的根本原因是Redis依赖了Linux/Unix系统特有的一些机制,比如fork()系统调用,它被用来做持久化时的后台快照,Windows的进程模型和这套机制对不上,官方团队一直也没打算专门维护一个Windows分支。

所以Windows用户实际能用的方案,基本都是“曲线救国”:

  • 使用第三方移植版:目前维护比较活跃的是tporadowski/redis,相当于把Redis 5.0.14移植到Windows上,编译成原生可执行文件,性能接近Linux版,适合本地开发测试。
  • 用WSL2跑Linux版Redis:在Windows里装一个轻量Linux虚拟机,直接跑官方原版Redis,行为最接近生产环境。
  • 用Docker容器跑:Docker Desktop底层还是WSL2或Hyper-V,但好处是一句命令就能拉起容器,环境隔离干净,不污染宿主机。

这三个方案我下面都会详细讲。如果你只是临时跑一下验证代码逻辑,选方案一最快;如果你日常开发本来就在用WSL2或者Docker,那方案二、三反而更顺。没有绝对的好坏,看你自己习惯哪种工作流。

1.2 三种方案适用场景对比

我先放一张对比表,后面再逐个拆开讲。这样你心里有个底,知道每种方式适合什么场景。

方案上手难度启动速度和Linux生产环境一致性适合场景
Windows原生移植版(ZIP)低,解压即用一般,Redis版本相对旧快速本地调试、轻量使用
MSI服务化安装低,图形界面指引快,开机自启一般希望长期作为Windows服务运行
WSL2原版中,需装WSL高,直接跑官方二进制开发环境与生产环境保持一致
Docker容器中,需装Docker Desktop高,镜像即官方版本多实例、复杂配置、需要环境隔离

从表里能看到,Windows原生移植版最大的优势就是“零依赖”,连WSL都不用开。但要注意它的Redis版本停留在5.x,像Redis 6.0引入的RESP3协议、客户端缓存、ACL权限控制这些新特性都用不上。如果你只是把Redis当缓存存个key,5.x完全够用,但如果你想体验新特性或者照着最新文档练习,建议直接用WSL2或Docker方案。

2. 方案一:绿色版ZIP直接跑,最快上手

这种方式的思路特别简单:GitHub上有人把Redis源码用MSVC编译成了Windows可直接运行的.exe文件,下载后解压到本地目录就能跑,不装任何依赖。整个过程不需要管理员权限,也不需要改系统配置,非常适合第一次体验Redis的读者。

2.1 下载哪个版本,怎么挑

直接在GitHub搜索tporadowski/redis这个项目,进入Releases页面,你会看到类似redis-x64-5.0.14.zipRedis-x64-5.0.14.msi这样的下载项。

  • zip是绿色版,解压即用,不用安装。
  • msi是安装包,安装时会自动帮你注册Windows服务,这点后面单独讲。

我推荐第一次用zip,理由有三个:一是省去安装向导的点选过程,二是随时可以整个文件夹删掉,不留系统垃圾,三是解压目录自己能控制,不容易出现权限问题。

不过有一点要注意,下载时别直接点浏览器里那个“Latest release”旁边的大按钮,看一下文件后缀,确认是.zip而不是.tar.gz。还有一些第三方网站会把Linux版Redis打包成.tar.gz挂出来,下错了在Windows上根本解不了压。下载完顺手看一下文件大小,正常应该在5MB到10MB之间,如果只有几百KB,大概率是下到README或者别的什么东西了。

2.2 解压和启动,五分钟跑通

找个干净目录,比如D:\DevTools\Redis,把zip包里的内容全部解压进去。解压完成后你会看到这些文件,我用文字描述一下:

  • redis-server.exe:服务端主程序,Redis本体。
  • redis-cli.exe:命令行客户端,用来发命令。
  • redis.windows.conf:默认配置文件,Redis启动时会读取它。
  • redis.windows-service.conf:注册成Windows服务时使用的配置文件。
  • redis-benchmark.exe:性能压测工具,平时很少用到。
  • redis-check-aof.exeredis-check-dump.exe:修复持久化文件的工具。

双击redis-server.exe,如果看到终端窗口打印出Redis的图标风格ASCII logo,还有类似Running mode=standalone, port=6379这样的日志,就说明启动成功了。注意,这个终端窗口不要关,关掉就意味着Redis进程退出,数据服务就停了。

然后验证一下能不能用。再打开一个cmd窗口,进入刚才的解压目录,输入:

redis-cli ping

如果回了一个PONG,恭喜,你的Redis已经能正常响应命令了。到这里,最小可用的Redis环境已经建成了。你可以在redis-cli里敲set name zhangsan,再敲get name,能返回对应值说明整个链路是通的。

2.3 把Redis注册成Windows服务

双击exe这种方式有一个很烦的点:桌面一重启,Redis就没了,每次开机都要手动双击一次。如果你打算长期使用,建议把Redis注册成Windows服务,让它在系统启动时自动在后台运行,不弹任何窗口。

用管理员身份打开cmd,进入解压目录,执行:

redis-server.exe --service-install redis.windows.conf --service-name RedisServer

这里--service-install表示安装服务,redis.windows.conf指定服务启动时加载的配置,--service-name RedisServer是给服务起个名字,方便后续管理,你想叫别的也行。

安装成功后,执行:

redis-server.exe --service-start --service-name RedisServer

这条命令把服务启动起来。想验证是否启动成功,两种方式二选一:一是再用redis-cli ping看是否返回PONG;二是在任务管理器里切到“服务”标签,找到名字为RedisServer的服务,状态列应该是“正在运行”。

以后再也不想用了,先停止服务再删除服务:

redis-server.exe --service-stop --service-name RedisServer redis-server.exe --service-uninstall --service-name RedisServer

这个过程中最容易翻车的地方是“忘记用管理员身份打开cmd”。如果不用管理员权限,执行服务安装命令会直接报错,提示权限不足或者失败。我在本地测试时也踩过几次,所以建议你从一开始就右键“以管理员身份运行”。

2.4 必改的配置项和自启动设置

绿色版默认配置可以直接用,但有两个地方建议马上改。

第一,设置密码。Redis默认是完全没有认证的,而且默认监听所有网卡接口,在本地测试没问题,可一旦服务器暴露在局域网里,别人就能连进来随意读写数据。修改解压目录下的redis.windows.conf,找到requirepass这一行,默认是被注释掉的,去掉注释并设置密码:

requirepass 你的密码

改完后重启服务或进程才生效。设置后redis-cli连接时就需要认证了:

redis-cli -a 你的密码

或者先进入交互模式再认证:

redis-cli auth 你的密码

第二,确认自启动。如果你用的是“双击exe”的方式,那开机不会自动启动。除了前面说的注册成服务之外,还有一个笨办法:把redis-server.exe的快捷方式丢进Windows的启动文件夹(按Win + R输入shell:startup回车就能打开)。这个方式不推荐,一是会有控制台窗口弹出来,二是如果配置文件路径不对,Redis启动了也是用默认空配置。

注册成服务后,默认的启动类型是“自动”,也就是开机自动运行。你可以在服务管理器里(按Win + R输入services.msc回车)找到RedisServer,双击确认启动类型是“自动”。

3. 方案二:MSI安装包,交给向导处理

如果你不喜欢手敲命令,觉得解压改配置太底层,那就用.msi安装包。这个方式其实和zip包是同一个项目里的不同构建产物,只是MSI会做几件额外的事:把文件安装到C:\Program Files\Redis这样的系统目录、自动注册成Windows服务、默认配置好开机自启。

3.1 安装过程中的几步选择

双击Redis-x64-5.0.14.msi后,一路跟着向导走。值得注意的是,安装到“Destination Folder”这一步时,默认路径是C:\Program Files\Redis,你可以改成自己习惯的位置,比如D:\Redis,这完全不影响使用。

继续往后,有一个需要注意的界面,里面会要求设置端口号(默认6379)、最大堆内存(默认不限制),还有一个“Add Redis installation folder to PATH environment variable”的选项,我建议勾上。勾上之后,你在任意cmd窗口里都能直接敲redis-cli,不用先cd到安装目录,后面操作会方便很多。

还有一个选项是关于防火墙的,询问是否允许Redis通过Windows Defender防火墙。如果只是本机开发,不勾选问题也不大,但如果你的Redis要提供给局域网内其他机器访问,建议勾上,避免后面排查防火墙问题。

3.2 安装完成后验证服务是否正常

安装过程走完后,你可以按Win + R输入services.msc回车打开服务管理器,找到名称为Redis的服务。正常情况下它的状态是“正在运行”,启动类型是“自动”,也就是说电脑每次开机,Redis都会自己跑起来。

然后在cmd里执行:

redis-cli ping

这里我特别提醒一句:如果安装时勾选了“Add Redis installation folder to PATH environment variable”,cmd直接能识别redis-cli;如果没有勾选,你需要先进到C:\Program Files\Redis目录再执行命令。

到这里你会发现,MSI方式其实和手动注册服务的效果一样,区别只是把操作封装成了向导。对于不想折腾命令行的读者来说,MSI确实是更友好的一种选择。

3.3 修改配置文件和重启服务

MSI方式安装后,配置文件在安装目录下的redis.windows-service.conf。想设置密码,用记事本或VS Code打开这个文件,搜索requirepass,同样去掉注释并改密码,保存后重启服务。

重启服务在服务管理器里右键Redis,选择“重新启动”。或者在cmd里用管理员权限执行:

net stop Redis net start Redis

这两条命令更直接,适合习惯命令行的读者。设置完密码后用redis-cli -a 你的密码验证一下,能正常操作就说明配置生效了。

我个人的建议是:如果你只是临时用,zip方案足够;如果明确知道要长期在Windows上开发,MSI安装包更省心。毕竟服务自启、PATH配置这种杂活,安装向导都帮你处理了。

4. 方案三:用WSL2或Docker跑Linux原版

对于有经验的开发者来说,Windows原生移植版有个绕不开的问题——Redis版本落后。Redis 6.0和7.0加入了不少新特性,比如ACL权限控制、客户端缓存、RESP3协议,想体验这些就只能用Linux原版。于是WSL2和Docker成了首选。

4.1 WSL2方式:几分钟跑起Linux原版Redis

WSL2是在Windows里运行一个轻量级Linux虚拟机的官方方案,和虚拟机相比资源占用小很多,启动速度接近原生进程。用这种方式,你拿到的就是Redis官方编译的Linux二进制,行为和生产环境完全一致。

先装WSL2。用管理员权限打开PowerShell或cmd,执行:

wsl --install

安装完成后重启电脑,再打开Windows Terminal,执行wsl --set-default-version 2确保用的是WSL2。首次启动WSL会自动进入默认的Ubuntu发行版,需要你设置一个Linux用户名和密码。

进入Ubuntu后,执行:

sudo apt update sudo apt install redis-server -y

安装过程中可能需要你输入之前设置的Linux密码,这个是Ubuntu系统的用户密码,不是Redis密码,别搞混了。

启动Redis:

sudo service redis-server start

验证一下:

redis-cli ping

回显PONG就说明原版Redis已经在你的Windows里跑起来了。这个Redis的版本是Ubuntu软件源里的最新版本,通常比Windows移植版新一两个大版本。

WSL2里的Redis默认开机不会自动启动。如果你希望每次打开WSL就自动带上Redis,可以在~/.bashrc文件末尾加一行:

sudo service redis-server start

但这样每次启动WSL时都会弹一次sudo密码提示,有点烦。也可以把当前用户加入sudo免密列表。

4.2 WSL2方式的几个坑

WSL2的坑我实实在在踩过几个,给你避一下。

第一,端口冲突。如果Windows上已经用原生移植版Redis占用了6379端口,WSL2里的Redis再启动就会报bind: Address already in use。这是因为WSL2的网络是共享宿主机的,两者监听的是同一个端口。解决办法是错开端口,比如WSL2里改成6380,或者干脆停掉Windows版Redis。

第二,文件兼容问题。WSL2里跑的是Linux版Redis,它读取的配置文件路径和Windows路径不一样。比如原来windows版用D:\Redis\redis.windows.conf,换到WSL2就要用/etc/redis/redis.conf,别把两个搞混。

第三,默认只监听本地。Ubuntu里的Redis默认配置是bind 127.0.0.1,这意味着只在WSL内部可访问。如果你想从Windows侧的程序连接WSL2里的Redis(比如Java后端跑在Windows侧),一般直接连localhost:6379就能通,因为WSL2默认的网络转发机制会处理。但如果连接不上,先检查redis.conf里的bindprotected-mode设置。

4.3 Docker方式:一条命令拉起来

如果你电脑上已经装了Docker Desktop,那用Docker跑Redis是最省心的一条路,好处是环境完全隔离,不用担心端口冲突、文件污染这些问题,而且以后删除容器,Redis的数据和配置也可以一并清理干净。

启动容器的命令:

docker run -d --name redis-container -p 6379:6379 -v D:/redis-data:/data redis:7.4 redis-server --appendonly yes

这条命令我拆开讲一下:

  • -d:后台运行容器。
  • --name redis-container:给容器起名,方便后续管理。
  • -p 6379:6379:把宿主机的6379端口映射到容器内的6379端口。
  • -v D:/redis-data:/data:把Windows侧的D:/redis-data目录挂载到容器内的/data,Redis的持久化文件会写在这里,这样删掉容器数据也不丢。
  • redis:7.4:使用官方Redis 7.4镜像。
  • redis-server --appendonly yes:启动时追加配置,开启AOF持久化。

验证是否启动成功:

docker ps

能看到名为redis-container的容器状态为 “Up”,再执行:

docker exec -it redis-container redis-cli ping

返回PONG说明容器内部的Redis正常工作。如果你的Java或Python程序跑在Windows本机,直接连localhost:6379就能访问到这个容器里的Redis。

4.4 Docker方式如何设置密码和时区

Docker命令里也可以直接带密码:

docker run -d --name redis-container -p 6379:6379 -v D:/redis-data:/data redis:7.4 redis-server --appendonly yes --requirepass 你的密码

更规范的做法是写一个docker-compose.yml文件,把端口、数据卷、密码、日志配置都声明好,以后一键启动:

version: "3" services: redis: image: redis:7.4 container_name: redis-container ports: - "6379:6379" volumes: - D:/redis-data:/data command: redis-server --appendonly yes --requirepass 你的密码

然后在docker-compose.yml所在目录执行docker compose up -d就能启动。这种方式的小优点是:配置都在文件里,团队协作时可以直接共享,不用每个人手动敲一大串命令。

不过Docker方式对电脑配置有一点要求——Docker Desktop本身要占内存,如果你机器只有8GB甚至更少,开着Docker再跑IDEA、浏览器之类的应用会比较吃力。这种情况下,本地开发建议用WSL2或者原生版。

5. 配置细节与常见坑

5.1 配置文件中建议关注的几个参数

不管哪种方式安装,Redis的配置都有几个高频参数建议你重点关注。我以Windows绿色版为例,打开redis.windows.conf,里面常见的参数如下:

参数名默认值作用建议
port6379监听端口默认即可,被占用时改成6380
bind127.0.0.1允许连接的IP范围默认只能本机连接,要开放局域网需改成0.0.0.0并配合防火墙规则
protected-modeyes保护模式,禁止远程无密码访问生产环境必须开启,测试环境也建议保持
requirepass无(被注释)连接密码强烈建议设置
maxmemory无限制内存使用上限,超出触发淘汰策略根据机器内存设置,比如2gb
maxmemory-policynoeviction(不淘汰)内存满时如何处理新写入推荐allkeys-lru,Least Recently Used 淘汰
appendonlyno是否开启AOF持久化数据重要时建议yes
appendfsynceverysecAOF刷盘策略保持默认everysec,平衡性能与安全

5.2 配置里最容易被忽略的maxmemory

很多初学者装好Redis后,不管内存使用直接开跑,这是很危险的一件事。如果没有设置maxmemory,Redis就会无限制使用系统内存,一旦数据量超出物理内存,操作系统就会开始使用虚拟内存(页面文件),性能断崖式下降,极端情况下甚至会导致整个系统卡死。

设置maxmemory的方式是打开配置文件,搜索maxmemory,把注释去掉,写上具体的限制:

maxmemory 2gb

再配合淘汰策略:

maxmemory-policy allkeys-lru

这个配置的意思很直白:当内存达到2GB时,Redis会优先淘汰最近最少使用的key,腾出空间给新数据。如果你的使用场景是缓存,这个配置最省心;如果Redis里存的是不可丢失的数据,就别用所有键淘汰策略,改成noeviction让写操作报错,至少能保证已有数据不丢。

5.3 连接可视化客户端和常见报错

装好Redis之后,直接用命令行操作对新手不太友好,推荐装一个可视化客户端来查看和管理数据。我用得比较多的是Another Redis Desktop Manager(简称ARDM),它是开源免费的,跨平台,界面比原版的Redis Desktop Manager更干净。

连接参数很简单:

  • Host:localhost127.0.0.1
  • Port:6379
  • Password:如果你设置了requirepass,就填设置的密码;没设置就留空
  • Name:给这个连接起个名字,方便多个连接区分

点“测试连接”,显示成功就说明客户端已经连上Redis了。

我顺手整理几个新手最容易踩的坑,每条都是我实测过的:

现象原因解决办法
redis-cli ping没反应Redis服务没启动,或者端口不对确认redis-server.exe还在运行,确认配置文件里的port
启动redis-server.exe后窗口一闪而过配置文件语法错误在cmd里手动执行redis-server.exe redis.windows.conf看报错输出
局域网内其他机器连不上bind只监听了127.0.0.1修改配置为bind 0.0.0.0,同时检查Windows防火墙是否放行6379端口
设置了密码还是能无密码连接改完配置没重启Redis修改配置后必须重启进程或服务
连接时提示ERR Client sent AUTH, but no password is set客户端发送了认证命令,但Redis没设置密码要么去掉客户端里的密码,要么在配置里补上requirepass
从Windows版Redis迁移到WSL2后key全不见了持久化文件路径不同,WSL2读的是Linux路径把Windows版的.rdb或AOF文件复制到WSL2对应的数据目录

5.4 排查技能:看日志是第一步

Redis在启动时、运行中都会把日志打到标准输出,绿色版运行时会直接显示在终端窗口里。如果用服务方式运行,日志默认写在安装目录下的redis_服务名.log。遇到问题先看日志,大多数情况下,Redis会把原因写得很清楚,比如端口被占用、配置文件权限不足、内存参数非法等,比你盲猜强很多。

举个我遇到过的真实案例:有次Redis启动后一直报Can't open the log file: Permission denied,排查半天发现是日志文件被其他程序锁定了,删除日志文件重新启动就好了。这种问题如果不去看日志,只盯着redis-cli ping不放,永远找不到根因。

6. 收尾前再唠叨两句

上面这些内容,基本覆盖了我这些年给团队同事解决Redis安装问题的经验。我个人最常用的组合是:临时本地测试用绿色版ZIP,长期Windows服务用MSI安装包,要贴近生产环境就上Docker或WSL2。没有哪一种方案是“唯一正确”的,关键是看你的场景对版本、性能、便捷度哪种需求更优先。

这里再分享一个我亲测有效的细节:无论你用哪种方案,装完后应该第一时间打开redis-cli把几个基础命令过一遍,比如pingsetgetkeys *。这不仅是验证安装,也是顺手看看命令行的交互是否符合预期,避免等到程序接入的时候才发现环境问题,那种排查成本高好几倍。

另外,Redis 5.0以后有个很实用的命令叫memory usage key,能查看某个key占多少内存,调试缓存大key的时候特别有用。不管在哪个平台装Redis,都值得记一下这个命令。

最后再提醒一点,不管在Windows上跑哪个版本的Redis,都不要在生产环境使用第三方移植版。它用来本地开发完全没问题,但如果要上生产环境,优先考虑Linux服务器,或者至少用Docker/WSL2方案跑官方原版,稳定性更有保障。Windows装Redis这件事,本身不难,难的是选对方案,并且在踩坑的时候知道往哪个方向查。希望这篇图文能帮你少走弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询