第一次在 Windows 10 上跑 Redis 数据库,很多人都是这么过来的:下载一个压缩包,解压,双击 redis-server.exe,看到黑窗口里打印出 Redis version 一会儿,就以为装好了。然后关了窗口,Redis 没了;重启电脑,Redis 也没了。这篇文章专门解决这件事——在 Windows 10 上把 Redis 数据库装好、配置调好,并且设置开机自启动,让它在你需要的时候自己就起来。我会把安装方式选择、配置修改、自启动方案、问题排查这几块分开讲,无论你是本地开发、测试环境,还是内部小项目要用,照着这套流程走,基本都能一次落地。
1. 在 Windows 上跑 Redis 之前,先搞清楚你面对的是什么
1.1 Redis 这东西到底解决什么问题
Redis 是一个基于内存的键值数据库,但它的本事远不止存字符串:它还支持列表、哈希、集合、有序集合这些数据结构,所以很多项目把它当成缓存层、消息队列、分布式锁、甚至是临时会话存储来用。你在 Windows 10 上装它,多半不是为了怼高并发,而是为了本地开发联调、模拟生产环境行为、或者给一个内网小工具提供数据支撑。这类场景下,Redis 足够轻量,一个进程、一个配置文件就能跑,不依赖复杂的服务。
我遇到过不少朋友问:既然生产环境都是 Linux,为什么不在 Windows 上直接开一个虚拟机,或者用 Docker/WSL 来跑 Redis?这当然也是一种方案,但对很多人来说太重了。装虚拟机要分配内存、维护镜像,Docker Desktop 在 Windows 上同样吃资源,WSL 也不是人人都会用。最直接的需求往往是:我就想在本机把 Redis 作为一个后台数据库服务用,能够开机自动启动,代码里一连接就能用,不用每次手动开窗口。这就是本文的价值。
1.2 Windows 版 Redis 的特殊情况:官方没有,社区在维护
这里必须先说一个非常关键的背景:Redis 官方并没有提供 Windows 版本。官方支持的平台是 Linux、macOS 这些类 Unix 系统,Windows 上的 Redis 都是社区移植或者兼容实现。这意味着你在 Windows 上装的 Redis,本质上和 Linux 上的官方版是“同一个用法、不同的编译产物”,大部分命令和配置通用,但个别行为可能有差异,你需要有一点心理准备。
常见的 Windows 可用来源大概有这几类:
- 微软早期维护的 Redis 分支:曾经在 GitHub 上有 Microsoft Open Tech 维护的 Windows 移植版,后来基本停止更新,版本停留在了比较旧的阶段,但至今仍有很多教程沿用。
- 第三方移植版(比如 tporadowski/redis):这是目前比较多人使用的 Windows 移植版,基于 Redis 5.0.x 分支维护,提供了 32 位和 64 位的可执行文件以及对应的 Windows 服务注册工具,整体稳定性不错。
- Memurai:一个宣称兼容 Redis API 的 Windows 原生实现,偏商业场景,官方支持较好,普通开发环境用不上。
- WSL / Docker:本质上跑的是 Linux 版 Redis,不属于“Windows 原生”。
我的建议是:本地开发、测试环境选社区移植版就够了,那套 redis-server.exe、redis-cli.exe 和 Windows 服务注册命令都齐全,下面整篇内容也都是基于这种移植版来写的。版本方面,5.0.x 这一代足够稳定,日常的缓存、队列、锁操作都没问题,没必要追新版本。
2. 安装包怎么选,放哪里才不乱
2.1 动手之前先看一眼系统环境和端口
安装 Redis 对 Windows 10 的版本要求不高,64 位系统基本都能跑。但有两件事我建议你先检查,能省掉后面一堆麻烦。
第一,检查 6379 端口有没有被占用。Redis 默认监听 6379,如果这个端口已经被别的程序占了,后面启动就会报错。打开命令提示符(CMD)或者 PowerShell,执行:
netstat -ano | findstr 6379如果这条命令返回了 LISTENING 状态的记录,说明端口被占用,你需要找到对应的 PID,再决定是停掉对应进程还是给 Redis 换一个端口。如果没有任何输出,说明端口干净,放心往下走。
第二,确认你有管理员权限。后面的自启动配置和 Windows 服务注册,都需要管理员权限。右键“以管理员身份运行 CMD”这个动作会经常出现,提前养成习惯。
另外,部分移植版依赖 Visual C++ 运行库,如果安装后启动提示缺少 DLL 文件,一般装上 VC++ 2015-2022 的 x64 运行库就能解决。这个不是必选项,但真遇到报错时不用慌。
2.2 MSI 安装版与 ZIP 便携版怎么选
Windows 版 Redis 的发布包通常有两种形式:ZIP 压缩包和 MSI 安装程序。别看只是安装形式不一样,背后影响的是你对整个部署过程的掌控能力。
MSI 版的好处是能自动注册 Windows 服务、写注册表、配置环境变量,对完全不想研究细节、只想双击装完就能用的人来说确实省心。但坏处也在这里——很多细节被封装在安装步骤里,装完之后你反而搞不清楚:配置文件到底在哪?服务是用哪条命令注册的?万一想卸载重装,又会留什么残留?如果哪天配置出了问题,排查路径会很绕。
ZIP 便携版就是解压即用,所有文件都躺在你自己选的目录里,配置文件、数据文件、可执行文件一眼就能看全。服务注册这些操作虽然要自己敲命令,但每条命令执行完是什么效果,心里清清楚楚。我强烈推荐使用 ZIP 便携版,理由就这么简单:可控。这次的文章核心之一就是让你理解“开机自启动”到底是怎么生效的,用 ZIP 版你才能真正理解整个过程。
如何选择:
| 对比项 | MSI 安装版 | ZIP 便携版 |
|---|---|---|
| 安装方式 | 向导式安装,自动注册服务 | 解压即可,手动注册服务 |
| 配置可控性 | 一般,关注点被分散 | 高,配置与数据文件位置明确 |
| 卸载清理 | 可能有残留 | 删除目录即可 |
| 适合人群 | 不想折腾,临时用用 | 需要稳定部署、理解原理 |
| 我的建议 | 不优先推荐 | 推荐使用 |
2.3 解压安装与目录规划实操
以 ZIP 版为例,假设你已经下载好了 Redis-x64-5.0.14.zip 这类压缩包。解压时我建议不要直接解压到桌面或者“下载”文件夹,最好放在一个独立、路径简单的目录,比如D:\Redis或者C:\Redis。路径里面不要带空格,不要带中文,这样能避免一些奇怪的问题——你永远不知道哪个工具会在空格路径上趴窝。
解压完成后,目录里会出现一系列文件,核心的是这几个:
redis-server.exe:Redis 服务端主程序,真正干活的进程。redis-cli.exe:Redis 命令行客户端,用来连接服务端、执行命令。redis.windows.conf:默认的配置文件,Redis 启动时要读的配置都在这里。
解压完成后,别急着配置,先用最原始的方式验证一下能不能跑。在 Redis 目录下打开管理员 CMD,执行:
redis-server.exe redis.windows.conf如果看到类似Redis server started加上一堆关于端口的日志输出,说明基础环境没问题。这时候不要直接关 CMD,而是另开一个 CMD,执行:
redis-cli ping如果返回PONG,说明服务端正常响应。测试完成后,回到启动 redis-server 的窗口,按 Ctrl+C 或者执行shutdown nosave关闭服务端进程,然后再继续。这一步相当重要:先保证最基础的可运行性是所有后续操作的前提,别在没跑起来之前就着急配自启动。
3. 配置里有玄机:跑起来只是第一步,跑得符合预期才是关键
3.1 配置文件是谁,先动哪几个参数
Redis 启动的时候会读取一个配置文件,默认就是解压目录里的redis.windows.conf。这个文件里的配置项非常多,但绝大多数你不需要碰。你需要关注的是几个和“可用性”直接相关的参数。
打开配置文件,把下面这些参数挨个过一遍。
| 参数名 | 默认值 | 作用 | 建议 |
|---|---|---|---|
| bind | 127.0.0.1 | 监听地址,决定谁能连 | 默认即可 |
| port | 6379 | 服务端口 | 默认即可,确认没被占 |
| protected-mode | yes | 保护模式,防止外部无密码连接 | 默认 yes |
| requirepass | 无 | 连接密码 | 建议设置 |
| maxmemory | 无 | 内存使用上限 | 按机器内存合理设置 |
| appendonly | no | 是否开启 AOF 持久化 | 看需求 |
| dir | ./ | 持久化文件保存目录 | 必须改成绝对路径 |
为什么要先弄清楚这些参数?因为很多人装完 Redis 之后,其实并不清楚自己是怎么跑起来的,遇到“密码一设客户端就连不上”“重启后数据丢了”“内存被 Redis 占爆”这些问题时,都会回头来翻配置文件。先看懂这几个,后面绝大多数问题都能对上号。
3.2 密码、绑定地址、持久化这几处最容易栽跟头
第一处是密码。默认情况下 Redis 是没有密码的,但如果你是给本地开发用,通常没问题;可一旦这个 Redis 被某个内网共享、或者其他机器也能访问,没密码就相当于把数据库大门敞开了。设置密码很简单,在配置文件里取消注释或者加一行:
requirepass YourStrongPassword改完密码后,用 redis-cli 连接时的写法会变:
redis-cli -a YourStrongPassword ping如果客户端不带着密码访问,Redis 会返回NOAUTH Authentication required的报错。这就是为什么有人经常会问“怎么设完密码连不上了”——不是连不上,而是连上了但没认证。
第二处是绑定地址。默认bind 127.0.0.1意味着这个 Redis 只接受来自本机的连接。如果你的目的是让局域网内其他机器也可以用,那可以改成bind 0.0.0.0,但这样做之前必须搭配好密码,并且确认网络环境可信。我的态度是:除非真的需要,别动这个参数,默认的 127.0.0.1 是保护你的安全屏障。
第三处是持久化。Redis 毕竟是个内存数据库,默认配置下如果突然断电,内存里的数据大概率会丢。Redis 提供两种持久化方式:RDB 快照和 AOF 追加。RDB 是定期把内存数据落盘,AOF 是记录每条写命令。如果你的用途是缓存,丢失一点数据无所谓,保持默认即可;如果是存储需要长期保留的数据,建议打开 AOF:
appendonly yes这里必须强调一个文件路径的问题。无论 RDB 还是 AOF,都会生成一个数据文件,保存位置由dir参数决定。默认的dir ./代表当前启动路径,当你把 Redis 注册成 Windows 服务来启动时,启动路径很可能就不是解压目录了,数据文件就会写到不明确的地方去。为了避免混乱,强烈建议把dir改成绝对路径:
dir D:/Redis/data同时记得把这个目录提前建好。这个坑我已经见不少人踩过,尤其是自启动场景下,数据文件乱飞,备份的时候完全找不到。
4. 设置开机自启动:三种做法,按需选择
4.1 首选:把 Redis 注册成 Windows 服务
Windows 服务是 Windows 系统里最标准的“后台常驻程序”机制。服务由系统启动管理器统一调度,不需要用户登录,开机就会按照设定的启动类型自动拉起来,还支持失败后的重启策略。把 Redis 注册成服务,是和“开机自启动”这件事最契合的方案。
在 Redis 解压目录下打开管理员 CMD,执行:
redis-server.exe --service-install redis.windows.conf --service-name Redis这里说明一下这条命令干了什么。--service-install是让 redis-server 把自己注册成 Windows 服务,redis.windows.conf指定启动时要读取的配置文件,--service-name Redis是给这个服务起个名字,方便后续管理。执行成功的话,命令窗口会提示服务安装成功,然后可以在“Win+R”输入services.msc打开服务管理器,找到名为 Redis 的服务。
注意,注册服务只是把“服务”挂上去了,服务还处于未启动状态。手动启动的方式有两种:
net start Redis或者:
sc start Redis正常情况下,服务管理器里,Redis 服务的状态会变成“正在运行”,启动类型默认是“自动”。这里要特别强调:启动类型是“自动”这个状态,才是我们真正要的开机自启动。你可以手动加速验证:右键服务名,选择“重新启动”,看服务会不会正常拉起,然后再考虑要不要重启系统。
如果哪天不想要这个服务了,卸载命令是对应的:
redis-server.exe --service-uninstall --service-name Redis一条命令干干净净地移除。
为什么我推荐这种方式而不是别的?因为服务方式是系统级行为:开机过程中不依赖任何用户登录,不需要你打开任何窗口,服务崩溃后还能按配置自动重启。本地开发机和内部测试服务器用这种方式管理 Redis,是最省心的。
4.2 备选:任务计划程序在开机时拉起 Redis
如果你用的不是移植版,或者出于某种原因不想注册服务,那任务计划程序是一个可接受的备选方案。它的逻辑很简单:让 Windows 在开机时自动执行一次命令。
打开“任务计划程序”(在开始菜单搜索),右侧点击“创建任务”。在弹出的窗口里做三件事:
- “常规”选项卡下,填一个任务名称,比如 Redis AutoStart,勾选“使用最高权限运行”。
- “触发器”选项卡下,点击“新建”,把“开始任务”选为“计算机启动时”。
- “操作”选项卡下,点击“新建”,“操作”选“启动程序”,“程序或脚本”填 Redis 解压目录下
redis-server.exe的完整路径,“添加参数”填D:\Redis\redis.windows.conf。这里不要把可执行文件和参数写在一起,否则路径解析会出错。
创建完成后,任务计划程序会在系统启动时自动执行这条命令,把 redis-server 拉到后台。这种方式比服务的自启动能力弱一些,但它不依赖 Redis 本身的服务注册功能,适用于“我不想让 Redis 变成服务,但希望它在开机后自动跑起来”的场景。缺点是任务计划程序的运行状态和崩溃恢复策略不如服务可靠,所以如果你能用服务,就不用绕这一圈。
4.3 不推荐的方案:启动文件夹
还有一些教程会告诉你,把 redis-server.exe 的快捷方式丢进“启动”文件夹,也就是 Windows 的启动目录,就能实现开机自启。这个方案技术上确实可行,但我完全不推荐。
原因有几个:第一,启动文件夹依赖用户登录,如果你开机后不登录账户,Redis 不会启动;第二,启动文件夹拉起的程序通常会有可见窗口(除非额外配置隐藏),看着就烦;第三,程序没有后台服务机制,崩溃了不会自动拉回来。平时自己玩一玩可以,但任何需要稳定性的场景都不该用这个方案。
5. 验证是不是真的自启了,以及出问题怎么排查
5.1 验证自启动是否生效的标准流程
配置做完之后,真正的考验是重启。重启系统,等进入桌面之后,别急着手动启动任何东西。打开 CMD 或 PowerShell,按以下顺序检查:
先看服务状态:
sc query Redis如果返回的 STATE 是RUNNING,说明服务已经被系统拉起来了。然后再用客户端验证:
redis-cli -a YourStrongPassword ping返回PONG,说明服务不仅进程活着,数据库也能正常接受连接。最后再看一眼 Redis 是否真的“在开机阶段”就启动了,而不是你进入桌面后才被某种机制触发的。服务方式通常没问题,任务计划方式的话就要去“任务计划程序”里看“上次运行时间”是否正好对应开机时间。
这三步全部通过,你才算真正完成了“Windows 10 安装 Redis 数据库,并设置开机自启动”这件事。
5.2 我踩过的坑:端口冲突、服务起不来、配置不生效
不管前面写得多顺,实际操作中总会遇到意外。下面几个问题是我自己在调试中真实遇到的,拿出来说价值远大于那些顺风顺水的教程。
第一个坑是服务启动后立刻停止。你执行net start Redis,系统提示“服务正在启动...服务已经启动成功”,但是过几秒你再去看,服务又变成停止状态了。这种情况绝大多数是配置有问题导致 redis-server 启动失败。最典型的原因是redis.windows.conf里dir指向的目录不存在,或者配置中某个参数写错导致 Redis 进程直接退出。排查方法是先用前台方式启动一下,看看完整报错:
cmd /k "cd /d D:\Redis && redis-server.exe D:\Redis\redis.windows.conf"如果前台启动正常,再把服务卸载重装一次。多数情况下是注册服务时配置文件路径写得太随意导致的。
第二个坑是端口被占用,服务能起来但连不上。我遇到过一台机器上同时装了 MySQL 和 Redis,MySQL 把 6379 占了,Redis 的日志里一直在报错。这种问题的排查路径很清晰:注册服务之前先跑一遍netstat -ano | findstr 6379,看到 PID 之后再通过“任务管理器”查一下是哪个进程占用的,实在需要保留那个程序就把 Redis 的port改成别的端口,比如 6380。改完配置记得重启服务。
第三个坑是“改了配置却不生效”。不少人改了requirepass,用 redis-cli 连上去发现还是不需要密码。这种情况十有八九是登进去的不是你改配置的那个 Redis 实例,或者根本没有加载对的配置文件。验证的方式很简单,连接成功后执行:
config get requirepass看看返回的密码值是不是你新配置的那个。如果和文件里不一致,说明 Redis 加载的不是这个配置文件。注册服务时要看清楚--service-install后面跟的配置文件是哪个;任务计划方式下,参数里指定的配置文件路径也同样要仔细检查。
5.3 日常维护小抄
Redis 装完、自启动配完,日常维护的常用命令也就那么几条,我在这里列一份备查清单:
- 查看服务是否在跑:
sc query Redis - 启动服务:
net start Redis - 停止服务:
net stop Redis - 连接测试:
redis-cli -a 密码 ping - 查看运行信息:
redis-cli -a 密码 info - 查看所有键数量:
redis-cli -a 密码 dbsize - 安全关闭:
redis-cli -a 密码 shutdown nosave
更新 Redis 版本时,记住一个原则:先备份再升级。把整个配置目录连同redis.windows.conf、data目录里的持久化文件整体复制一份,然后卸载旧服务、替换可执行文件、重新注册服务。虽然 Redis 的升级一般不用改配置,但备份永远是最便宜的保险。
最后再分享一点个人经验。我之所以一直偏爱“ZIP 解压 + 注册服务”这套组合,是因为它把整个生命周期都看得见摸得着:配置就在一个文件里,数据文件就在指定目录里,服务状态一条命令就能查。比起双击安装完就黑盒运行,这种模式才是真正把 Redis 当成一个数据库在管理。劝你从一开始就不要贪省事去用那些一键脚本,务必亲手注册一次服务、改一次配置、重启一次系统,把这条链路走通。后面再遇到其他需要开机自启的工具,比如 RabbitMQ、MySQL,你会发现它们的套路殊途同归,这趟折腾的价值远比省下半小时大得多。