Linux中重启Redis的两种方法

[复制链接]
发表于 2026-10-6 10:04:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

Redis 的配置大部分写在 redis.conf 里,改完之后必须重启进程才会加载新参数。但重启是有讲究的——有些节点有正在跑的缓存请求,直接 kill -9 会让连接瞬间断掉,业务那边就表现为一批缓存 miss 甚至报错。这里整理两种重启方式:一种硬一点,一种温和,实际生产更推荐后者。

方式一:杀进程再启动(硬重启)

思路很直接:先把 Redis 进程干掉,再用同一份配置文件重新拉起来。适合本机源码部署、进程由你自己管、且服务可以短暂中断的场景。

# 在包含 redis 配置文件和 bin 目录的目录下操作

# 先按原配置启动一次,确保命令目录对得上
./bin/redis-server redis.conf

# 另开终端查进程号
ps -ef | grep redis

# 杀掉对应进程
kill -9 8993

# 再重新拉起
./bin/redis-server redis.conf

这里的 8993 只是个示例数字,实际要填 ps -ef | grep redis 输出里真实存在的 PID。

注意 kill -9 是不可捕获的信号,Redis 来不及做持久化落盘(RDB 快照、AOF 缓冲都可能丢最近几秒的写),也没有机会释放客户端连接。只在测试环境或者明确允许丢数据的窗口用这种方式。

方式二:用 redis-cli 优雅重启(推荐)

更稳妥的做法是让 Redis 自己先落盘再退出,然后立刻重启,中间只有极短的连接抖动:-

# 让 Redis 先保存到磁盘再退出,带 nosave 则跳过保存直接关
redis-cli shutdown

# 确认进程已经不在
ps -ef | grep redis

# 重新启动,加载新的 redis.conf
./bin/redis-server redis.conf

如果你改的配置和持久化有关(比如换了 dir 目录、改了 appendonly),可以把 shutdown 换成 shutdown save,强制退出前做一次快照,避免旧目录里还有没同步的数据。

redis-cli shutdown save   # 退出前执行一次 RDB 保存
redis-cli shutdown nosave  # 不保存,直接退出

用 systemd 管理的实例怎么处理

现在多数服务器是 systemd 托管 Redis,那就不该手工 kill,直接走服务管理:

sudo systemctl restart redis

# 改完配置先看有没有语法问题
redis-server /etc/redis/redis.conf --version
sudo systemctl status redis

确认新配置真的生效,用 INFO 打一下运行时状态:

redis-cli info server | grep redis_version
redis-cli config get 你刚改的那项

尤其推荐用 config get 核对,它能直接读出当前运行中的值,而不是磁盘上那份配置文件。很多人改完重启发现没变化,其实就是改错了文件(比如改了 redis.conf 但实际加载的是 redis.tcp.conf 这种带后缀的分片配置)或者进程根本没重启。

两种方式怎么选

对比项kill -9 硬重启shutdown 平滑重启
数据风险可能丢最近写入、无落盘可先落盘再退出,风险低
连接中断全部直接断开短暂抖动,客户端自动重连
适用环境测试环境、单机 demo生产、有业务的缓存节点
操作复杂度查 PID、杀、重启一条 shutdown + 一条启动

几个避坑提示

  • 改配置前先备份。把原始 redis.conf 复制一份,重启炸了能立刻还原。
  • 确认进程归属。一台机器上可能跑了不止一个 Redis(比如 6379 和 6380),ps 的时候别杀错端口。
  • 主从 / 集群要按顺序。集群环境逐节点滚动重启,不要同时停,否则可能出现 slots 不可用。
  • 重启后盯一眼。看 redis-cli ping 返回 PONG、INFO clients 里的连接数慢慢涨回来,比只看进程存在要可靠。

总结一句:本地练手两种方式都行,带上业务的生产环境请优先用 redis-cli shutdown 平滑切换,把"重启 Redis"做成一次可控的短抖动,而不是一次硬中断。

qidao123.com企服评测-应用市场 编辑提示

本文由齐道123 IT 运维社区整理,汇总 Linux 下重启 Redis 的几种常见做法及取舍。操作仅适用于你自有或已获授权的 Redis 实例;kill -9 属于强制中断,可能导致未落盘数据丢失,生产环境请优先采用 redis-cli shutdown 平滑退出或 systemd 服务重启,并在操作前备份配置文件、确认目标端口与实例归属。

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表