Redis的下载与配置可以参考以下文章,写得十分清晰:
- Windows下Redis安装与配置全攻略_-CSDN博客
- Window 环境安装Redis ,并配置为开启自启动 - 清和时光 - 博客园
- Redis安装与配置:从零开始搭建高性能Redis环境-CSDN博客
这里主要谈一谈其他一些补充说明。
和 Linux 的区别
在 Linux 上,Redis 可以通过:
daemonize yes
让自己在后台运行(即脱离终端、输出日志到文件)。
👉 Windows 版本的 Redis 不支持 daemonize、supervised、pidfile 这些选项。
daemonize 是 Unix/Linux 系统的概念,指的是在后台运行的守护进程
你 不能 在 redis.windows.conf 里加 daemonize yes,因为 Windows 版 Redis 不支持后台守护进程模式。但可使用 Windows 服务(Windows Service)机制 来替代守护进程的功能。
Windows 服务模式下,Redis 的行为相当于:
- daemonize = yes(Linux)
- supervised = systemd(Linux)
- 由 Windows 服务管理器负责启动、停止、重启。
对比如下:
| 功能 | Linux 做法 | Windows 做法 |
|---|---|---|
| 后台运行 | daemonize yes |
注册为服务(--service-install) |
| 管理方式 | systemd / upstart | Windows Service |
| 配置位置 | redis.conf | redis.windows.conf |
| 关闭终端后仍运行 | ✅ | ✅ |
支持 pidfile |
✅ | ❌ |
| 开机自动启动 | systemctl enable redis | sc config Redis start= auto |
🧩 两种运行方式
也就是说,Windows 版的 Redis 只能:前台运行(普通命令行模式)、注册为系统服务自动后台启动。
| 启动方式 | 特点 | 是否需要CMD窗口 |
|---|---|---|
| 普通启动(前台) | 你运行 redis-server.exe redis.windows.conf 后,Redis 会占用当前命令行窗口,窗口关闭就停止。 |
✅ 需要 |
| 服务模式(后台) | Redis 注册为系统服务,启动后在后台运行(即使关闭CMD也不会退出)。 | ❌ 不需要 |
✅ 方式 1:前台运行
打开一个 CMD 窗口运行 Redis 服务器:
redis-server.exe redis.windows.conf
再打开另一个 CMD 窗口连接客户端:
redis-cli.exe
两个窗口都要保持打开,一旦关闭服务器窗口,Redis 进程就会被终止。
✅ 方式 2:安装为 Windows 服务(推荐)
这是等价于 Linux 的 daemonize yes 的做法。
在 CMD 或 PowerShell 运行:
redis-server.exe --service-install redis.windows.conf --loglevel verbose
然后启动服务:
redis-server.exe --service-start
从此以后 Redis 会:
- 在后台自动运行;
- 不再需要专门打开服务器窗口;
- 只需用
redis-cli.exe连接即可; - 可选设置为 开机自启(
sc config Redis start= auto)。
如果你想停止服务:
redis-server.exe --service-stop
或者卸载服务:
redis-server.exe --service-uninstall
📘 注意:服务名默认是
Redis,也可以通过--service-name自定义。
⚙️ 查看服务状态
你可以在 PowerShell 或 CMD 输入:
sc query Redis
或者在「任务管理器 → 服务」中查看 Redis 是否正在后台运行。

根据 sc query Redis 的输出分析,Redis 服务正在正常运行!现在可以直接使用 redis-cli 来连接和操作 Redis 数据库了。
状态分析:
- SERVICE_NAME :服务名称为 Redis
- TYPE: 10 WIN32_OWN_PROCESS:这是一个独立的 Win32 进程
- STATE:运行状态,状态码 4 表示服务正在运行
- WIN32_EXIT_CODE:退出代码为 0,表示正常无错误
运行状态说明:
| 状态码 | 状态说明 |
|---|---|
| 1 | STOPPED(已停止) |
| 2 | START_PENDING(启动中) |
| 3 | STOP_PENDING(停止中) |
| 4 | RUNNING(运行中) |
| 5 | CONTINUE_PENDING(继续中) |
| 6 | PAUSE_PENDING(暂停中) |
| 7 | PAUSED(已暂停) |
💎 Redis 服务管理工具
新建 redis_service_manager.bat,建议放在与 redis-server.exe 同一目录下。例如:
D:\Redis\
├─ redis-server.exe
├─ redis-cli.exe
├─ redis.windows.conf
├─ …………
└─ redis_service_manager.bat
- redis.windows.conf:配置文件
- redis-cli:是redis提供的命令行客户端
- redis-server:是redis的服务端启动脚本
可以使用 vscode 保存为 GBK 格式。
@echo off
title Redis 服务管理工具
color 0A
chcp 936 >nul
:: =============================================
:: Redis Windows 一键管理脚本
:: 适用版本: https://github.com/tporadowski/redis
:: =============================================
setlocal ENABLEDELAYEDEXPANSION
set "REDIS_DIR=%~dp0"
set "REDIS_EXE=%REDIS_DIR%redis-server.exe"
set "REDIS_CLI=%REDIS_DIR%redis-cli.exe"
set "REDIS_CONF=%REDIS_DIR%redis.windows.conf"
set "SERVICE_NAME=Redis"
:: -----------------------------
:CHECK_ENV
if not exist "%REDIS_EXE%" (
echo 未找到 redis-server.exe,请将本脚本放在 Redis 程序目录下!
pause
exit /b
)
if not exist "%REDIS_CONF%" (
echo 未找到 redis.windows.conf,将使用默认配置启动!
)
goto MENU
:: -----------------------------
:MENU
cls
echo.
echo ===============================
echo Redis 服务管理工具
echo ===============================
echo [1] 启动 Redis 服务
echo [2] 停止 Redis 服务
echo [3] 重启 Redis 服务
echo [4] 设置 Redis 开机自启
echo [5] 查看 Redis 服务状态
echo [6] 启动 redis-cli 客户端
echo [7] 一键检测服务运行状态
echo [0] 退出
echo ===============================
set /p choice=请输入选项 [0-7]:
if "%choice%"=="1" goto START
if "%choice%"=="2" goto STOP
if "%choice%"=="3" goto RESTART
if "%choice%"=="4" goto AUTO_START
if "%choice%"=="5" goto STATUS
if "%choice%"=="6" goto CLI
if "%choice%"=="7" goto CHECK_RUNNING
if "%choice%"=="0" goto END
echo.
echo 选项无效,请重新输入。
pause
goto MENU
:: -----------------------------
:START
echo.
echo 正在启动 Redis 服务...
"%REDIS_EXE%" --service-start
if %errorlevel%==0 (
echo Redis 已成功启动!
timeout /t 2 >nul
echo.
echo 自动测试连接 Redis...
"%REDIS_CLI%" ping
echo (如果返回 PONG,则说明运行正常)
) else (
echo 启动失败,请确认是否已安装 Redis 服务。
)
pause
goto MENU
:: -----------------------------
:STOP
echo.
echo 正在停止 Redis 服务...
"%REDIS_EXE%" --service-stop
if %errorlevel%==0 (
echo Redis 服务已停止。
) else (
echo 停止失败,请确认服务是否正在运行。
)
pause
goto MENU
:: -----------------------------
:RESTART
echo.
echo 正在重启 Redis 服务...
"%REDIS_EXE%" --service-stop >nul 2>&1
timeout /t 2 >nul
"%REDIS_EXE%" --service-start
if %errorlevel%==0 (
echo Redis 已成功重启!
timeout /t 2 >nul
echo.
echo 测试 Redis 连接...
"%REDIS_CLI%" ping
echo (如果返回 PONG,则说明运行正常)
) else (
echo 重启失败,请确认服务是否已安装或配置正确。
)
pause
goto MENU
:: -----------------------------
:AUTO_START
echo.
echo 设置 Redis 为开机自启...
sc config %SERVICE_NAME% start= auto >nul 2>&1
if %errorlevel%==0 (
echo 设置成功,Redis 将在系统启动时自动运行。
) else (
echo 设置失败,请确认服务是否存在。
)
pause
goto MENU
:: -----------------------------
:STATUS
echo.
echo 当前 Redis 服务状态:
sc query %SERVICE_NAME%
pause
goto MENU
:: -----------------------------
:CLI
echo.
if exist "%REDIS_CLI%" (
echo 启动 redis-cli 客户端...
"%REDIS_CLI%"
) else (
echo 未找到 redis-cli.exe,请确认文件是否存在。
)
goto MENU
:: -----------------------------
:CHECK_RUNNING
echo.
echo 检测 Redis 服务运行状态...
for /f "tokens=3 delims=: " %%A in ('sc query %SERVICE_NAME% ^| find "STATE"') do set STATUS=%%A
if /I "!STATUS!"=="RUNNING" (
echo Redis 服务正在运行。
"%REDIS_CLI%" ping | find "PONG" >nul
if %errorlevel%==0 (
echo Redis 响应正常。
) else (
echo Redis 无响应,请检查配置。
)
) else (
echo Redis 服务未运行。
)
pause
goto MENU
:: -----------------------------
:END
echo.
echo 已退出 Redis 服务管理工具。
exit /b
使用方法
- 直接点击运行 → 不行的话再 以管理员身份运行
- 输入数字即可操作:
| 功能 | 说明 |
|---|---|
| 1️⃣ | 启动 Redis |
| 2️⃣ | 停止 Redis |
| 3️⃣ | 重启 Redis |
| 4️⃣ | 设置开机自启 |
| 5️⃣ | 查看服务状态 |
| 6️⃣ | 打开 redis-cli |
| 7️⃣ | 检查服务运行状态 |
| 0️⃣ | 退出脚本 |
这里放出部分截图:

