马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
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 服务重启,并在操作前备份配置文件、确认目标端口与实例归属。
|