当前位置:首页 > 问答 > 正文

Redis服务端 停止方法:优雅关闭Redis服务端的操作步骤与退出方式

🔥 Redis服务端优雅关闭指南:安全退出的正确姿势

📢 最新动态(2025年8月)
Redis 7.2.5版本近期优化了SHUTDOWN命令的响应速度,在集群模式下关闭主节点时,现在会自动触发更高效的副本切换流程,减少服务中断时间,运维团队记得更新哦~


🛑 为什么要"优雅关闭"?

直接kill -9杀死Redis进程就像突然拔掉电脑电源💥——可能导致:

  • 数据丢失(未持久化的内存数据)
  • AOF/RDB文件损坏
  • 集群模式下的主从切换混乱

✅ 正确姿势:通过Redis内置指令或信号通知,让它完成:
1️⃣ 持久化内存数据
2️⃣ 拒绝新请求
3️⃣ 处理完剩余任务再退出


✨ 三种优雅关闭方法

方法1️⃣:使用REDIS-CLI命令(推荐)

redis-cli shutdown [NOSAVE|SAVE]
  • 不加参数:默认尝试SAVE(持久化数据再退出)
  • SAVE:强制持久化后关闭(即使无修改)
  • NOSAVE:跳过持久化直接关闭(⚠️慎用)

💡 适用场景:单机/集群均可,最可控的方式

Redis服务端 停止方法:优雅关闭Redis服务端的操作步骤与退出方式


方法2️⃣:发送系统信号

kill -TERM $(pidof redis-server)  # 相当于发送SHUTDOWN
  • SIGTERM(15):等同于shutdown命令
  • SIGINT(2):Ctrl+C触发,效果相同

🚨 注意:不要用SIGKILL(9)!这是"暴力击杀"


方法3️⃣:配置文件超时关闭

redis.conf中设置:

timeout 300      # 5分钟无操作自动关闭
shutdown-timeout 60  # 关闭时最多等待60秒(7.0+版本)

🌰 典型用途:自动化运维脚本中的保底策略

Redis服务端 停止方法:优雅关闭Redis服务端的操作步骤与退出方式


🌀 集群环境特别注意事项

  1. 主节点关闭前:确保至少有一个副本在线
    redis-cli CLUSTER FAILOVER TAKEOVER  # 手动触发主从切换
  2. 验证副本同步状态
    redis-cli INFO replication | grep state

🔍 验证是否成功关闭

检查日志最后一行应有:

[12345] 08 Aug 2025 14:00:00.999 # Redis is now ready to exit, bye bye...

或使用:

ps aux | grep redis-server  # 确认进程已消失

🧰 高级技巧:延迟关闭

对于繁忙服务,可以分步操作:

Redis服务端 停止方法:优雅关闭Redis服务端的操作步骤与退出方式

  1. 先设置CLIENT PAUSE 5000(暂停新请求5秒)
  2. 再执行SHUTDOWN

🎯 一句话总结
日常维护用redis-cli shutdown,紧急情况发SIGTERM,永远对kill -9说不!

ℹ️ 本文操作基于Redis 7.2版本,传统6.x版本可能参数略有差异。

发表评论