在 CentOS 上配置 Redis 报错,原因通常集中在权限、配置语法、端口/防火墙、SELinux、版本差异这几类。下面我按「常见报错 → 原因 → 解决办法」给你梳理,你可以对照自己的报错信息。
Can't open config file / 找不到配置文件原因
解决
ls -l /etc/redis.conf
确保存在,且运行用户(通常是 redis)有权限:
chown redis:redis /etc/redis.conf
chmod 640 /etc/redis.conf
Permission denied 或无法写 dump.rdb原因
dir 配置目录无写权限/var/lib/redis 但属主不对解决
mkdir -p /var/lib/redis
chown -R redis:redis /var/lib/redis
redis.conf 中:
dir /var/lib/redis
Address already in use原因
解决
netstat -tunlp | grep 6379
或:
systemctl stop redis
bind: Cannot assign requested address原因
bind 写了不存在的 IP解决
bind 127.0.0.1
# 或
bind 0.0.0.0
protected-mode 导致无法连接报错示例
DENIED Redis is running in protected mode
解决 二选一:
protected-mode no
或设置密码:
requirepass yourpassword
排查
getenforce
如果是 Enforcing:
setsebool -P redis_enable_notify 1
或临时关闭测试:
setenforce 0
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload
报错示例
Failed to start Redis persistent key-value database
查看真实错误:
journalctl -xe -u redis
常见原因:
supervised systemd 没开supervised systemd
bind 0.0.0.0
protected-mode no
port 6379
dir /var/lib/redis
supervised systemd
如果你愿意,直接贴出:
systemctl 还是 redis-server)cat /etc/centos-release)我可以直接告诉你是哪一行配置错了。