说实话,每次有读者问我“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.zip和Redis-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.exe、redis-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里的bind和protected-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,里面常见的参数如下:
| 参数名 | 默认值 | 作用 | 建议 |
|---|---|---|---|
port | 6379 | 监听端口 | 默认即可,被占用时改成6380 |
bind | 127.0.0.1 | 允许连接的IP范围 | 默认只能本机连接,要开放局域网需改成0.0.0.0并配合防火墙规则 |
protected-mode | yes | 保护模式,禁止远程无密码访问 | 生产环境必须开启,测试环境也建议保持 |
requirepass | 无(被注释) | 连接密码 | 强烈建议设置 |
maxmemory | 无限制 | 内存使用上限,超出触发淘汰策略 | 根据机器内存设置,比如2gb |
maxmemory-policy | noeviction(不淘汰) | 内存满时如何处理新写入 | 推荐allkeys-lru,Least Recently Used 淘汰 |
appendonly | no | 是否开启AOF持久化 | 数据重要时建议yes |
appendfsync | everysec | AOF刷盘策略 | 保持默认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:
localhost或127.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把几个基础命令过一遍,比如ping、set、get、keys *。这不仅是验证安装,也是顺手看看命令行的交互是否符合预期,避免等到程序接入的时候才发现环境问题,那种排查成本高好几倍。
另外,Redis 5.0以后有个很实用的命令叫memory usage key,能查看某个key占多少内存,调试缓存大key的时候特别有用。不管在哪个平台装Redis,都值得记一下这个命令。
最后再提醒一点,不管在Windows上跑哪个版本的Redis,都不要在生产环境使用第三方移植版。它用来本地开发完全没问题,但如果要上生产环境,优先考虑Linux服务器,或者至少用Docker/WSL2方案跑官方原版,稳定性更有保障。Windows装Redis这件事,本身不难,难的是选对方案,并且在踩坑的时候知道往哪个方向查。希望这篇图文能帮你少走弯路。