L
O
A
D
I
N
G

Redis安装与设置


Redis的下载与配置可以参考以下文章,写得十分清晰:

这里主要谈一谈其他一些补充说明。


和 Linux 的区别

在 Linux 上,Redis 可以通过:

daemonize yes

让自己在后台运行(即脱离终端、输出日志到文件)。

👉 Windows 版本的 Redis 不支持 daemonizesupervisedpidfile 这些选项

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️⃣ 退出脚本

这里放出部分截图:

功能1

功能6


文章作者: loyeh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 loyeh !
评论
  目录