Ubuntu 20.04上Redis 5.0.7无法启动,疑与systemd相关
解决Redis 5.0.7在Ubuntu 20.04无法启动的排查思路
1. 直接手动启动Redis,获取详细错误信息
systemd的报错仅显示退出状态1,缺乏具体原因,先跳过systemd直接启动Redis,查看实时报错:
/usr/bin/redis-server /etc/redis/redis.conf
这一步会直接输出启动失败的核心原因,比如端口被占用、权限异常、持久化文件损坏等。
2. 查看Redis本地日志
默认Redis日志路径为/var/log/redis/redis-server.log,提取最新日志片段:
tail -n 50 /var/log/redis/redis-server.log
日志会记录启动失败的细节,比如RDB/AOF文件损坏、内存不足、配置项冲突等关键信息。
3. 检查端口占用情况
Redis默认使用6379端口,确认是否被其他进程占用:
ss -tulpn | grep 6379
若端口被占用,可杀掉占用进程,或修改Redis配置文件中的port项更换端口。
4. 验证Redis相关目录/文件权限
Redis运行用户通常为redis,检查数据目录(默认/var/lib/redis)、日志目录、配置文件的权限:
ls -ld /var/lib/redis /var/log/redis /etc/redis/redis.conf
确保这些文件/目录的所有者为redis:redis,权限设置合理(目录750、文件640)。若权限异常,执行以下命令修复:
chown -R redis:redis /var/lib/redis /var/log/redis chmod 750 /var/lib/redis /var/log/redis chmod 640 /etc/redis/redis.conf
5. 检查持久化文件完整性
若开启RDB或AOF持久化,文件损坏会导致启动失败:
- 检查RDB文件(默认
/var/lib/redis/dump.rdb):
redis-check-rdb /var/lib/redis/dump.rdb
- 修复AOF文件(默认
/var/lib/redis/appendonly.aof):
redis-check-aof --fix /var/lib/redis/appendonly.aof
若修复无效,备份后删除损坏的持久化文件再尝试启动(注意会丢失未备份的数据)。
6. 核对systemd服务文件配置
即使配置与正常机器一致,仍可检查/lib/systemd/system/redis-server.service内容,对比正常机器的文件,确保ExecStart路径、用户设置等正确。若修改了服务文件,需重新加载systemd配置:
systemctl daemon-reload
7. 检查系统资源限制
- 内存:用
free -h确认是否内存不足,Redis启动需足够内存,尤其是持久化文件较大时。 - 文件描述符:检查系统文件描述符限制是否足够,临时调整后再尝试启动:
ulimit -n 1000000
若有效,需修改/etc/security/limits.conf永久设置。
内容的提问来源于stack exchange,提问作者B-zaro
相关产品推荐
相关产品推荐

