将 Redis 注册为 Windows 服务,可以实现开机自启和后台静默运行,避免每次手动启动或关闭命令行窗口导致服务中断。
目录
核心前提:管理员权限
所有操作必须在"以管理员身份运行"的命令提示符(CMD)或 PowerShell 中执行,否则会因权限不足而失败。
标准注册流程
-
切换目录
进入 Redis 的安装目录,确保
redis-server.exe和配置文件在同一文件夹下。cmd cd /d D:\Redis-x64-5.0.14.1
-
注册服务
执行安装命令。推荐使用
redis.windows-service.conf,它是专为服务模式优化的配置文件。cmd redis-server --service-install redis.windows-service.conf --loglevel verbose -
看到
Redis successfully installed as a service.提示即表示注册成功。 -
启动服务
注册成功后服务不会自动启动,需要手动启动一次。redis-server --service-start
-
或者,你也可以在 Windows 的"服务"管理界面(运行
services.msc)中找到 Redis 并右键启动。 -
验证运行
打开一个新的命令行窗口,执行以下命令,返回
PONG即表示服务正常运行。redis-cli ping
指定服务名称
- 在注册服务时,通过
--service-name参数为每个实例定义一个唯一的名称。
redis-server --service-install <配置文件> --service-name <自定义服务名> --port <端口号>
2.管理指定名称的服务
启动、停止或卸载服务时,也必须通过 --service-name 参数来指定目标服务,否则命令将作用于默认服务。
| 操作 | 命令示例 |
|---|---|
| 启动服务 | redis-server --service-start --service-name RedisCache |
| 停止服务 | redis-server --service-stop --service-name RedisCache |
| 卸载服务 | redis-server --service-uninstall --service-name RedisCache |
关键提醒
- 名称唯一性 :
--service-name指定的名称在 Windows 服务列表中必须是唯一的,不能与现有服务重名。 - 配置文件独立:每个服务名称应对应一个独立的配置文件,确保端口、内存、日志等配置互不干扰。
- 强制卸载 :如果
--service-uninstall命令执行失败,可以使用 Windows 系统命令强制删除:sc delete <服务名>。
安装失败核心排查步骤
1.检查日志文件路径(最常见原因)
Redis 在作为服务运行时,如果找不到日志目录会直接崩溃。
操作:进入你的 Redis 安装目录(例如 C:\redis),手动新建一个名为 logs 的文件夹。
原理:很多 Redis Windows 版本的默认配置文件里写了 logfile "logs/redis.log",但解压后的安装包并不自带这个文件夹,导致写入失败。
2.验证配置文件是否有效
你之前注册服务时用的是 redis.windows-service.conf,请确认这个文件没有被改坏。
操作:打开 redis.windows-service.conf,搜索 logfile 和 dir 两个配置项。
logfile:确保指向的路径存在(比如刚才建的 logs 文件夹)。
dir:确保指向的是存放 .rdb 数据文件的目录,且该目录有写入权限。
建议:如果不确定配置有没有改错,可以先用原始的 redis.windows.conf 重新注册一次试试。
3.检查端口占用
如果 6379 端口被其他程序(或另一个 Redis 实例)占用了,服务也会启动失败。
操作:以管理员身份打开 CMD,执行:cmd netstat -ano | findstr :6379
判断:如果有输出结果,说明端口被占。记下最后的 PID 数字,去任务管理器里结束那个进程,或者在配置文件里把 Redis 端口改成别的(比如 6380)。
.4.查看 Windows 事件查看器(终极手段)
如果上面都没问题,系统日志会告诉你 Redis 到底为什么挂了。
操作:
按 Win + R,输入 eventvwr.msc 回车。
展开"Windows 日志" -> "应用程序"。
在右侧列表里找红色的"错误"条目,来源通常是 Redis。
双击查看详细信息,里面会有具体的报错原因(比如"Can't open the log file"或"Address already in use")。
5.快速修复命令
如果你想彻底重来,建议先卸载旧服务,清理后再注册:
cmd
1. 卸载旧服务
redis-server --service-uninstall --service-name redis_qtx
2. 确认 logs 文件夹已创建
3. 重新注册(这次用标准的 windows.conf 试试)
redis-server --service-install redis.windows.conf --service-name redis_qtx --loglevel verbose
4. 启动
redis-server --service-start --service-name redis_qtx