如何重启Redis服务?
美国、香港服务器
如何重启Redis服务?
01-09 来源:
✅ Ubuntu 24.04 重启 Redis 服务【最全方式 + 验证 + 排错】
适配 Ubuntu 系统默认的 redis-server systemd 服务部署(你当前的环境),整理了 所有可用的重启命令、启停命令、开机自启、状态检查、失败排错,全部命令直接复制执行即可,内容精简实用,优先记推荐命令即可。
核心说明:修改 Redis 配置文件后,必须重启服务配置才能生效,这是唯一生效方式!
一、✅ 推荐:Redis 重启核心命令(3 种,按优先级排序)
方式 1:平滑重启(最常用,优先使用)【推荐⭐⭐⭐】
bash
运行
sudo systemctl restart redis-server
✅ 优点:系统级平滑重启,不中断现有正常客户端连接,重启速度快,生产环境首选,99% 的场景用这个就够了!
方式 2:先停止,再启动(适合配置出错 / 启动失败时排查)
bash
运行
sudo systemctl stop redis-server
sudo systemctl start redis-server
✅ 适用场景:当你修改配置后重启失败时,先停再启能清空进程残留,排查问题更精准。
方式 3:强制重启(极端情况应急用)
bash
运行
sudo systemctl restart -f redis-server
✅ 适用场景:Redis 进程卡死、假死,普通重启没反应时使用。
二、✅ 必做:重启后 验证 Redis 是否重启成功(2 种核心验证方式)
重启只是第一步,必须验证成功才算真的没问题,这两步是运维铁律,缺一不可,避免「以为重启成功,实际服务挂了」!
✔️ 验证 1:查看 Redis 服务运行状态(看服务是否正常)
bash
运行
sudo systemctl status redis-server
✅ 成功的核心标志(绿色字体):
plaintext
Active: active (running) since 时间; xxx ago
❌ 失败的标志:
plaintext
Active: failed (Result: exit-code) 或者 Active: inactive (dead)
✔️ 验证 2:Redis 连通性测试(看服务是否能正常访问)【最精准】
bash
运行
# 情况1:默认端口6379 + 无密码(默认情况)
redis-cli ping
# 情况2:你修改过端口/设置了密码(按需替换)
redis-cli -p 你的端口 -a 你的密码 ping
✅ 成功返回:PONG → 说明 Redis 服务重启成功 + 可以正常连接 + 配置生效
❌ 失败返回:Could not connect to Redis at 127.0.0.1:6379: Connection refused
三、✅ 补充:Redis 常用运维命令(启停 / 开机自启 / 重载)
✅ 开机自启(重要!服务器重启后 Redis 自动启动)
bash
运行
# 设置开机自启(执行一次即可,永久生效)
sudo systemctl enable redis-server
# 取消开机自启
sudo systemctl disable redis-server
✅ 其他高频命令(备用)
bash
运行
# 停止Redis服务(只停不启)
sudo systemctl stop redis-server
# 重新加载配置(无需重启服务,极少用:仅修改systemd服务文件时生效)
sudo systemctl daemon-reload
四、❌ 重启失败 / 启动失败 一键排错(最常见原因 + 解决方案)
👉 场景 1:重启后 status 显示 failed(启动失败)
👉 场景 2:redis-cli ping 连接拒绝,但服务显示 running
👉 场景 3:重启时报 Permission denied 权限错误
✅ 排错步骤 1:查看 Redis 启动失败日志【核心!优先执行】
日志里会明确标注失败原因 + 错误行号,是最快定位问题的方式,命令直接执行:
bash
运行
# 方式1:查看Redis自身运行日志(优先看这个,99%的错误都在这里)
sudo tail -50 /var/log/redis/redis-server.log
# 方式2:查看系统服务日志(补充排查,看systemd的启动报错)
sudo journalctl -u redis-server -n 50
✅ 最常见的 5 个失败原因 + 解决方案(全部对应你之前的操作)
❌ 原因 1:配置文件语法错误(修改配置后最常见!)
现象:重启失败,日志提示 Bad directive / Invalid value / Configuration error
✅ 解决方案:校验配置文件语法,修复错误后再重启
bash
运行
# 1. 先获取你的配置文件路径
CONFIG_PATH=$(redis-cli CONFIG GET config_file | grep -v config_file)
[ -z "$CONFIG_PATH" ] && CONFIG_PATH="/etc/redis/redis.conf"
# 2. 校验语法(Redis自带工具,会提示错误行+原因)
sudo redis-server --test-config $CONFIG_PATH
✅ 语法正确会输出:Configuration loaded;错误则按提示修改配置文件即可。
❌ 原因 2:配置文件权限错误(你修改配置后必踩的坑!)
现象:重启失败,日志提示 Permission denied,执行ls -l /etc/redis/redis.conf 显示属主是 root:root
✅ 解决方案:修复配置文件权限(一键执行,永久解决)
bash
运行
sudo chown redis:redis /etc/redis/redis.conf
sudo chmod 644 /etc/redis/redis.conf
❌ 原因 3:修改端口后,端口被占用
现象:重启失败,日志提示 bind: Address already in use
✅ 解决方案:查看占用端口的进程,杀掉或更换 Redis 端口
bash
运行
# 查看端口占用(替换成你的端口,如6379/6380)
sudo netstat -tulpn | grep 6379
❌ 原因 4:内存 / 磁盘不足
现象:重启失败,日志提示 OOM / No space left on device
✅ 解决方案:清理服务器磁盘空间,或调整 Redis 的maxmemory配置。
❌ 原因 5:Redis 进程卡死(假死)
现象:执行重启命令没反应,status 显示 active 但 redis-cli ping 连接不上
✅ 解决方案:强制杀进程后重启
bash
运行
# 强制杀死Redis进程
sudo kill -9 $(pgrep redis-server)
# 重新启动
sudo systemctl start redis-server
五、✅ 特殊情况:其他部署方式的 Redis 重启(备用)
如果你后续遇到以下部署方式,对应的重启命令也附上,不用记,用到再查即可:
✔️ 情况 1:源码编译安装的 Redis(无 systemd 服务)
bash
运行
# 优雅停止(不丢失数据,推荐)
redis-cli shutdown
# 重新启动(指定配置文件)
redis-server /etc/redis/redis.conf
✔️ 情况 2:Docker 容器部署的 Redis
bash
运行
# 查看容器名称/ID
docker ps | grep redis
# 重启容器
docker restart 容器ID/容器名称
六、✅ 一键重启 + 验证脚本(懒人福音,复制即用)
整合「重启 + 状态检查 + 连通性测试」,执行后自动判断是否成功,失败提示日志路径,不用手动敲多个命令:
bash
运行
#!/bin/bash
# 按需修改:如果改了端口/密码,替换这里
REDIS_PORT=6379
REDIS_PWD=""
echo "🔄 正在重启Redis服务..."
sudo systemctl restart redis-server
# 检查服务状态
if sudo systemctl is-active --quiet redis-server; then
echo "✅ Redis服务重启成功!服务状态:运行中"
# 检查连通性
if [ -z "$REDIS_PWD" ]; then
PING_RESULT=$(redis-cli -p $REDIS_PORT ping)
else
PING_RESULT=$(redis-cli -p $REDIS_PORT -a $REDIS_PWD ping)
fi
if [ "$PING_RESULT" = "PONG" ]; then
echo "✅ Redis连接正常,配置已生效!"
else
echo "❌ Redis服务运行中,但连接失败!"
fi
else
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快