最近换了新笔记本, 在 Windows 上折腾 Redis 的开机自启,本以为是一条命令的事,结果踩了好几个坑。这里把完整过程记录下来,希望能帮到遇到同样问题的朋友。
背景
环境:Windows 系统,Redis 版本 8.10.2,解压目录为 D:\applications\Redis-8.10.2。
目标很简单:让 Redis 开机自动启动,不用每次手动开一个黑窗口。
踩坑一:PowerShell 里直接敲 redis-server 报错
按照网上很多旧教程,我在 PowerShell 里直接执行:
powershell
redis-server --service-install redis.conf --loglevel verbose
结果报错:
redis-server : 无法将"redis-server"项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
原因 :PowerShell 出于安全考虑,不会自动从当前目录加载可执行程序。即使你已经 cd 到了 Redis 目录,直接写 redis-server 它也不认识。
解决 :加 .\ 前缀,明确告诉 PowerShell 去当前目录找:
powershell
.\redis-server --service-install redis.conf --loglevel verbose
踩坑二:8.10.2 版本的 redis-server 不支持服务参数
加上 .\ 后命令能识别了,但执行服务启动时又报了新错:
*** FATAL CONFIG FILE ERROR (Redis 8.10.2) ***
Reading the configuration file, at line 2
>>> 'service-start'
Bad directive or wrong number of arguments
原因 :Redis 8.10.2 的 Windows 版本里,redis-server.exe 本身已经不再具备管理系统服务的能力 ,--service-start、--service-install 这类参数被移除了。它把 service-start 当成了一条配置指令去解析,自然报错。
解决 :改用专门的 RedisService.exe 工具来管理服务。前提是你下载的安装包是带服务功能的版本。
踩坑三:下载了带 Service 的包,却提示找不到命令
确认自己下载的是 Redis-8.10.2-Windows-x64-cygwin-with-Service.zip,文件名里明明有 with-Service,但执行时依然报:
'. \RedisService.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。
原因 :看截图发现,命令执行时的目录是 C:\Windows\System32,而不是 Redis 所在目录。命令开头的 .\ 表示"当前目录",当前目录不对,自然找不到文件。
踩坑四:cd 跨盘符切换目录失败
尝试切到 D 盘:
cmd
cd D:\applications\Redis-8.10.2
结果提示符依然是 C:\Windows\System32>,dir RedisService.exe 也提示"找不到文件"。
原因 :在 Windows CMD 里,cd 命令只能切换当前盘符内的路径,不能直接跳到另一个盘。它只是把 D 盘的那个路径"记住"了,但人还留在 C 盘。
解决:分两步走------先切盘符,再切路径:
cmd
D:
cd applications\Redis-8.10.2
✅ 最终成功步骤
以下是在 Windows 下为 Redis 8.10.2 配置开机自启的完整流程:
1. 以管理员身份打开 CMD
注册系统服务需要管理员权限,普通窗口会失败。按 Win 键搜索 cmd,右键选择"以管理员身份运行"。
2. 切换到 Redis 目录(注意先切盘符)
cmd
D:
cd applications\Redis-8.10.2
3. 确认 RedisService.exe 存在
cmd
dir RedisService.exe
4. 注册服务并设置开机自启
cmd
RedisService.exe install -c redis.conf --dir D:\applications\Redis-8.10.2 --port 6379 --start-mode auto
5. 卸载服务(若是不需要、或者前面跑错配置文件了)
bash
RedisService.exe uninstall
参数说明:
-c:指定配置文件--dir:指定数据目录--port:指定端口--start-mode auto:直接设置为开机自启
6. 验证
按 Win + R,输入 services.msc,找到名为 Redis 的服务,确认:
- 启动类型为 自动
- 状态为 正在运行
看到这两项,开机自启就配置成功了。
小结
这次踩坑的核心教训有三点:
- PowerShell 和 CMD 对当前目录程序的加载规则不同 :PowerShell 需要
.\前缀,CMD 进了目录直接写文件名即可。 - 不同版本的 Redis for Windows 服务管理方式不同 :新版本要用
RedisService.exe,不要照搬旧教程里的redis-server --service-install。 - CMD 的
cd不能跨盘符 :跨盘要先输入盘符(如D:),再cd路径。
希望这篇记录能帮你少走点弯路。