04-Redis 启动与停止:服务管理全攻略(含命令行与图形化操作)
目录
- 引言
- 一、为什么要掌握 Redis 服务的正确启停方式?
- 二、Windows 系统:两种启停方式详解(新手优先图形化)
- 2.1 图形化操作:直观易懂,适合新手
- (1)启动服务
- (2)停止服务
- (3)优缺点分析
- 2.2 命令行操作:高效灵活,支持自定义配置
- (1)启动服务
- (2)停止服务
- (3)关键注意事项
- 三、macOS/Linux 系统:命令行启停与服务配置(生产环境首选)
- 3.1 临时启停:当前会话有效,适合测试
- (1)启动服务
- (2)后台启动:生产环境常用
- (3)停止服务
- 3.2 开机自启配置:生产环境必备
- (1)macOS 系统(Homebrew 安装)
- (2)Linux 系统(以 CentOS 为例)
- 3.3 服务状态检查:快速判断服务是否正常
- 四、启停异常排查:3 类常见问题解决
- 4.1 问题 1:启动提示 “端口 6379 已被占用”
- 4.2 问题 2:执行 `SHUTDOWN` 后服务未关闭
- 4.3 问题 3:重启后数据丢失
- 五、总结:不同场景的启停方式选择建议
引言
安装 Redis 后,“正确启停服务” 是保障数据安全与系统稳定的关键一步。很多新手会犯 “直接关闭命令窗口强制停止”、“启动后端口冲突” 等错误,导致数据丢失或服务异常。本文将针对 Windows、macOS、Linux 三大系统,详细讲解 Redis 服务的图形化与命令行启停方法,同时拆解常见异常的排查思路,帮你彻底掌握 Redis 服务管理。
一、为什么要掌握 Redis 服务的正确启停方式?
新手对 Redis 服务管理的认知常存在两个误区:一是认为 “启动就是双击 exe 文件,停止就是关窗口”,二是忽视 “启停顺序与配置加载” 的关联性。但实际上,错误的启停方式会带来严重问题:
-
强制停止(如关闭命令窗口):可能导致 Redis 来不及执行持久化,内存中的数据直接丢失;
-
重复启动未关闭的服务:会因端口被占用(默认 6379)导致启动失败,提示 “bind: Address already in use”或直接闪退;
-
未指定配置文件启动:服务会加载默认配置,此前修改的端口、密码等自定义设置全部失效。
因此,掌握 “按场景选启停方式 + 验证服务状态 + 异常排查” 的完整流程,是 Redis 学习与使用的核心基础。
二、Windows 系统:两种启停方式详解(新手优先图形化)
Windows 系统的 Redis 服务有两种运行模式 ——“系统服务模式”(开机自启,后台运行)和 “普通应用模式”(临时启动,窗口关闭即停止),对应两种启停方式。
2.1 图形化操作:直观易懂,适合新手
图形化操作无需记忆命令,通过系统界面即可完成服务管理,适合刚接触 Redis 的新手,主要针对 “系统服务模式” 的 Redis。
(1)启动服务
- 右键点击桌面 “此电脑”,选择 “管理”,进入 “计算机管理” 窗口;
- 在左侧导航栏依次展开 “服务和应用程序”→“服务”;
- 在右侧服务列表中,找到名称为 “Redis” 的服务(若安装时未修改服务名);
- 若 “状态” 列显示 “已停止”,右键点击 “Redis”,选择 “启动”;
- 等待 1-2 秒,“状态” 变为 “正在运行”,说明服务启动成功。
打开“服务”列表的方式有很多,比如Win+R
,在运行窗口直接输入services.msc
,或者打开任务管理器→服务。
(2)停止服务
-
同样在 “服务” 列表中找到 “Redis” 服务;
-
若 “状态” 为 “正在运行”,右键点击,选择 “停止”;
-
“状态” 变为 “已停止”,表示服务已关闭(此时可重新启动或修改配置)。
(3)优缺点分析
-
优点:操作直观,无需记命令,适合验证服务是否正常运行;
-
缺点:步骤较多,无法指定自定义配置文件启动,不适合批量管理多实例。
2.2 命令行操作:高效灵活,支持自定义配置
命令行操作支持 “普通应用模式” 和 “系统服务模式”,可指定配置文件启动,适合需要自定义设置(如修改端口、密码)或批量管理的场景。
(1)启动服务
根据运行模式不同,命令分为两种:
-
普通应用模式(临时启动,窗口关闭即停止):
-
按下
Win+R
,输入cmd
打开命令提示符; -
若已配置环境变量,直接执行命令(未配置则需先切换到 Redis 安装目录,如
cd D:\Program Files\Redis
):# 不指定配置文件(加载默认配置 redis.windows.conf) redis-server.exe # 指定配置文件(推荐,如使用服务模式配置文件) redis-server.exe "D:\Program Files\Redis\redis.windows-service.conf"
-
若窗口显示 “Server started, Redis version x.x.xx” 且光标闪烁,说明启动成功(此窗口需保持打开,关闭则服务停止)。
-
-
系统服务模式(后台运行,开机自启):
-
以管理员身份打开命令提示符;
-
执行以下命令启动服务(无需保持窗口打开):
# 启动 Redis 服务 net start redis # 若服务名已修改(安装时自定义),需用修改后的名称,如 net start redis6380
-
(2)停止服务
同样分两种模式,强烈推荐用命令优雅停止,避免强制关闭:
-
普通应用模式:
-
切换到启动服务的命令提示符窗口;
-
按下
Ctrl+C
,在弹出的确认框中输入Y
,服务会自动执行持久化后关闭。
-
-
系统服务模式:
-
以管理员身份打开命令提示符;
-
执行以下命令(优雅停止,触发数据持久化):
# 停止 Redis 服务 net stop redis # 或通过 redis-cli 发送关闭命令(更推荐,适合远程或自定义端口) redis-cli -h 127.0.0.1 -p 6379 SHUTDOWN
-
(3)关键注意事项
-
启动前必须检查服务状态:若 “服务” 列表中 Redis 已运行,直接双击
redis-server.exe
会因端口冲突闪退,需先停止服务; -
停止时优先用
SHUTDOWN
命令:该命令会让 Redis 先将内存数据写入磁盘(触发持久化),再关闭服务,避免数据丢失; -
自定义端口需指定
-p
参数:若修改过 Redis 端口(如 6380),启停命令需加-p 6380
,例:redis-cli -p 6380 SHUTDOWN
。
三、macOS/Linux 系统:命令行启停与服务配置(生产环境首选)
macOS 和 Linux 系统以命令行为主,支持 “临时启停” 和 “开机自启”,且操作逻辑基本一致(仅服务管理命令略有差异),适合开发与生产环境。
3.1 临时启停:当前会话有效,适合测试
临时启停仅在当前终端会话中生效,终端关闭或服务器重启后,服务会停止,适合开发测试场景。
(1)启动服务
-
打开终端,执行以下命令:
# 不指定配置文件(加载默认配置,通常在 /etc/redis.conf 或 /usr/local/etc/redis.conf) redis-server # 指定自定义配置文件(推荐,如修改过端口、密码) redis-server /etc/redis/redis-6380.conf
-
若终端显示 “Ready to accept connections”,说明启动成功(前台启动需保持终端打开,关闭则服务停止)。
(2)后台启动:生产环境常用
前台启动占用终端,生产环境需后台运行,需先修改配置文件:
-
打开 Redis 配置文件(如
/etc/redis.conf
),找到daemonize no
,改为daemonize yes
(允许后台运行); -
执行后台启动命令:
redis-server /etc/redis.conf
-
验证后台启动:执行
ps -ef | grep redis
,若显示redis-server *:6379
,说明服务已在后台运行。
(3)停止服务
禁止用 kill -9
强制杀死进程(会导致数据丢失),推荐以下两种优雅停止方式:
-
方式一:通过
redis-cli
发送关闭命令(推荐,支持远程和自定义端口):# 本地默认端口(6379) redis-cli SHUTDOWN # 自定义端口(如 6380) redis-cli -p 6380 SHUTDOWN # 远程服务(如 192.168.1.100:6379,需密码) redis-cli -h 192.168.1.100 -p 6379 -a 123456 SHUTDOWN
-
方式二:通过
kill
发送正常终止信号(需先查进程 ID):# 查找 Redis 进程 ID ps -ef | grep redis # 输出类似:5123 1 0 10:00 ? 00:00:01 redis-server # 发送终止信号(进程 ID 为 5123) kill 5123
3.2 开机自启配置:生产环境必备
生产环境需要 Redis 随服务器开机自动启动,避免重启后手动操作,macOS 和 Linux 配置方式略有不同。
(1)macOS 系统(Homebrew 安装)
若通过 Homebrew 安装 Redis,可直接用 Homebrew 管理开机自启:
# 开启开机自启
brew services start redis
# 关闭开机自启
brew services stop redis
# 查看服务状态(是否自启、运行中)
brew services list
执行 brew services start redis
后,Redis 会以服务形式后台运行,重启电脑后自动启动。
(2)Linux 系统(以 CentOS 为例)
Linux 主要通过 systemd
(主流)或 rc.local
配置开机自启,这里以 systemd
为例:
-
创建 Redis 服务文件:
sudo vi /usr/lib/systemd/system/redis.service
-
粘贴以下内容(需根据实际安装路径修改
ExecStart
和ExecStop
路径):[Unit] Description=Redis Server After=network.target[Service] Type=forking # 启动命令(指定配置文件,确保 daemonize yes) ExecStart=/usr/local/bin/redis-server /etc/redis.conf # 停止命令 ExecStop=/usr/local/bin/redis-cli SHUTDOWN # 重启命令 ExecReload=/bin/kill -HUP $MAINPID User=root Group=root Restart=always[Install] WantedBy=multi-user.target
-
刷新服务配置并设置开机自启:
# 刷新配置 sudo systemctl daemon-reload # 开启开机自启 sudo systemctl enable redis # 启动服务 sudo systemctl start redis # 查看状态(验证是否自启成功) sudo systemctl status redis
执行 sudo systemctl enable redis
后,服务器重启时 Redis 会自动启动。
3.3 服务状态检查:快速判断服务是否正常
无论哪种系统,都需要学会检查服务状态,避免 “以为启动成功实则失败” 的情况:
-
Windows:在 “服务” 列表查看 Redis 状态,或执行
sc query redis
(命令提示符); -
macOS:
brew services list | grep redis
(Homebrew 安装)或ps -ef | grep redis
; -
Linux:
sudo systemctl status redis
(systemd 系统)或ps -ef | grep redis
。
四、启停异常排查:3 类常见问题解决
即使掌握了步骤,也可能因端口冲突、配置错误等导致启停失败,以下是 3 类高频问题的排查与解决方法。
4.1 问题 1:启动提示 “端口 6379 已被占用”
现象:启动时终端 / 窗口提示 “bind: Address already in use”(Linux/macOS)或 “创建服务器 TCP 监听套接字 127.0.0.1:6379: 绑定失败”(Windows)。
原因:该端口已被其他 Redis 实例或服务占用。
解决方案:
-
查找占用端口的进程:
-
Windows:
netstat -ano | findstr 6379
(最后一列数字为进程 ID); -
Linux/macOS:
netstat -tuln | grep 6379
或lsof -i:6379
。
-
-
结束占用进程:
-
Windows:任务管理器→详细信息→找到对应进程 ID→结束任务;
-
Linux/macOS:
sudo kill -9 进程ID
(若为 Redis 进程,优先用redis-cli SHUTDOWN
)。
-
-
若需保留占用进程,可修改 Redis 端口(参考 “Redis 基础配置” 文章),用新端口启动。
4.2 问题 2:执行 SHUTDOWN
后服务未关闭
现象:执行 redis-cli SHUTDOWN
后,用 ps
或 “服务” 列表查看,Redis 仍在运行。
原因:权限不足(如非 root 用户执行)或 Redis 进程无响应。
解决方案:
-
提升权限:Linux/macOS 加
sudo
,例:sudo redis-cli SHUTDOWN
; -
强制终止(万不得已):先查进程 ID(
ps -ef | grep redis
),再执行sudo kill -9 进程ID
(注意:此方式可能导致数据丢失,需事后检查持久化文件)。
4.3 问题 3:重启后数据丢失
现象:服务重启后,之前存储的 key
消失(如 GET name
返回 nil
)。
原因:未开启持久化,或停止时未触发持久化,内存数据未写入磁盘。
解决方案:
-
开启持久化(参考后续 “Redis 基础配置” 文章):至少开启 RDB(默认开启)或 AOF;
-
停止服务前手动触发持久化:执行
redis-cli SAVE
(RDB)或等待 AOF 自动写入(默认每秒一次),再执行SHUTDOWN
; -
验证持久化文件:检查 Redis 安装目录下是否生成
dump.rdb
(RDB)或appendonly.aof
(AOF),重启时会加载这两个文件恢复数据。
五、总结:不同场景的启停方式选择建议
掌握 Redis 服务管理的核心是 “按场景选对方式”,这里给出明确的选择建议:
-
新手 / Windows 本地学习:优先用图形化操作(“服务” 列表)启停,简单不易出错;
-
开发测试 / 临时验证:用命令行临时启动(
redis-server
),测试完成后用SHUTDOWN
停止; -
生产环境 / Linux/macOS:配置开机自启(
systemd
/Homebrew services),日常用systemctl
或brew services
管理,停止必须用SHUTDOWN
命令; -
多实例管理:为每个实例指定不同端口和配置文件,启停时通过
-p
或配置文件区分(如redis-cli -p 6380 SHUTDOWN
)。
服务管理是 Redis 稳定运行的 “基石”,正确的启停习惯能避免 80% 的数据丢失与服务异常问题。