如果你在Windows上配置过Redis,八成遇到过这样的场景:手动启动redis-server.exe一切正常,redis-cli也能连上,但服务器重启一次,Redis就悄无声息地没了。业务该查缓存还在查缓存,请求直接打到数据库,瞬时连接数上去,线上告警立马爆炸。
我第一次踩这个坑,是帮一个项目组在Windows Server上部署Redis。当时我下载了个zip包解压到C盘,手动跑起来验证通过就收工了。结果第二周周一早上,群里已经炸了——服务器周末自动更新重启过,Redis没拉起来,订单查询全部变慢。自那以后,我才认认真真把“Windows版Redis自启动”这件事从头到尾研究透。
这篇文章就是围绕这件事展开的:从下载源怎么选,到配置文件的坑,再到注册成Windows服务、验证自启动,以及如果你想用任务计划或启动文件夹做备选方案,怎么操作。无论你是开发机自用,还是要在Windows Server上给业务做缓存,照着下面的步骤走,至少能少踩一半的坑。
1. 先捋清楚:Windows上的Redis到底从哪来
1.1 为什么官方不直接给Windows安装包
很多人第一次搜Redis官网,翻遍下载页也找不到Windows版本的安装包,第一反应是“我是不是找错网站了”。其实你没找错,Redis官方确实不直接提供Windows版本,这是它的底层机制决定的。
Redis的持久化依赖fork()系统调用,这个调用在Unix-like系统里非常成熟,Redis通过fork子进程做RDB快照和AOF重写,既能保证性能又不会阻塞主进程。Windows没有原生的fork语义,硬要实现的话,需要在进程创建、内存复制、文件句柄继承这些底层逻辑上做大量模拟。官方团队评估后一直不愿意碰这块,所以Windows上能跑的Redis,基本都是社区移植版。
理解这个背景之后,你就知道Windows上的Redis不是“假货”,只是实现路径不同。它的命令、客户端协议、数据结构都跟Linux版完全一致,日常使用基本感觉不到差异。
1.2 几个发行版的实际情况
既然官方不给Windows包,那Windows上常见的Redis都是从哪来的?我大致梳理了一下,目前主流就这几个来源:
| 来源 | 维护状态 | 适用场景 |
|---|---|---|
| tporadowski/redis | 活跃维护,版本较新(基于5.x) | 目前Windows原生版的首选 |
| MSOpenTech/redis | 微软开源,已基本停止更新 | 适合存量老环境,别指望大版本升级 |
| WSL内跑Linux版Redis | WSL本身在持续迭代 | 开发机尝鲜可以,生产服务器不建议 |
| Memurai | 商业级Redis兼容替代 | 预算充足且需要官方级别技术支持时考虑 |
我个人在Windows上做本地开发或部署内部系统,最常用的是tporadowski/redis,这也是目前社区普遍推荐的一个。它的安装方式很简单,下载zip解压就行,开箱即用,而且它自带的redis-server.exe就支持注册Windows服务,这正好满足了自启动的需求。
至于MSOpenTech那个版本,网上老教程特别多,很多文章提到“微软维护的Redis for Windows”说的就是它。但这几年确实不怎么更新了,如果新装环境,建议直接看tporadowski的版本,除非你是接手别人已有的老环境,那就别乱动,够用就行。
1.3 为什么不建议在Windows服务器上跑WSL
还有一条路是WSL,也就是Windows Subsystem for Linux。在开发机上装一个WSL发行版,然后在里面用Linux的方式安装Redis,这套流程对开发环境很友好。但放到Windows Server生产环境,我一般不建议这么干。
原因有三点:一是WSL本身也依赖Windows侧的WSL服务,自启动配置又会多一层;二是网络栈隔离,某些场景下WSL2的NAT网络会让其他机器访问Redis变得麻烦;三是运维复杂度,本来在Windows上跑Redis图的就是省事,套一层WSL之后,进程管理、端口映射、系统更新兼容性都要额外操心。所以如果你追求的是“Windows开机后Redis自动可用”,最省心的路还是直接上原生exe版本。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
