CentOS 上 Redis 配置失败 通常不是单一原因,而是配置、权限、端口、SELinux、防火墙或启动方式等问题叠加。下面按最常见原因 → 排查方法 → 解决方案给你一个系统性的排查清单。
Redis 不会自动加载你改的配置文件,除非你显式指定。
❌ 常见错误:
redis-server
✅ 正确方式:
redis-server /etc/redis.conf
或 systemd:
systemctl start redis
Redis 对配置格式要求严格。
常见错误:
bind 127.0.0.1
requirepass 123456 # 密码不能有空格
✅ 正确:
bind 127.0.0.1
requirepass 123456
检查配置:
redis-server /etc/redis.conf --test-config
ss -lntp | grep 6379
解决:
kill -9 $(pidof redis-server)
Redis 需要写:
dir /var/lib/redis
logfile /var/log/redis/redis.log
mkdir -p /var/lib/redis
mkdir -p /var/log/redis
chown -R redis:redis /var/lib/redis
chown -R redis:redis /var/log/redis
即使配置正确,SELinux 也会拦截。
检查:
getenforce
临时关闭测试:
setenforce 0
✅ 永久解决(推荐):
setsebool -P redis_enable_notify 1
或允许端口:
semanage port -a -t redis_port_t -p tcp 6379
firewall-cmd --list-ports
放行:
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload
CentOS 7/8 默认用 systemd。
检查:
systemctl status redis
journalctl -xe
常见问题:
ExecStart=/usr/bin/redis-server /etc/redis.conf --daemonize no
必须 --daemonize no
Redis 启动失败常见内核报错:
overcommit_memory is set to 0
解决:
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl -p
redis-server /etc/redis.conf
# 报错:Bad file format
解决:
mv dump.rdb dump.rdb.bak
mv appendonly.aof appendonly.aof.bak
redis-server /etc/redis.conf
journalctl -u redis -f
tail -f /var/log/redis/redis.log
bind 0.0.0.0
protected-mode no
port 6379
daemonize no
dir /var/lib/redis
dbfilename dump.rdb
logfile /var/log/redis/redis.log
requirepass redis123
你可以直接贴出:
我可以直接帮你 逐行定位并给出修改方案 ✅