在 CentOS 上正确配置 Redis,通常包括安装、基础配置、安全配置、开机自启、以及必要的系统参数调整。下面给你一套生产环境可用的标准做法(以 CentOS 7/8 + Redis 6/7 为例)。
sudo yum install -y epel-release
sudo yum install -y redis
sudo yum install -y gcc make
wget https://download.redis.io/redis-stable.tar.gz
tar xzf redis-stable.tar.gz
cd redis-stable
make && make install
Redis 默认配置文件:
/etc/redis.conf # yum 安装
/usr/local/redis/redis.conf # 源码安装
# 绑定 IP(不要直接 0.0.0.0 暴露公网)
bind 127.0.0.1 192.168.1.100
# 端口
port 6379
# 守护进程模式
daemonize yes
# 日志
logfile /var/log/redis/redis.log
# 数据目录
dir /var/lib/redis
# 持久化(推荐同时开启)
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfsync everysec
requirepass yourStrongPassword
连接时:
redis-cli -a yourStrongPassword
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG "CONFIG_9f3a"
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
永久生效:
vim /etc/rc.local
# 加入上面两行
chmod +x /etc/rc.d/rc.local
vim /etc/security/limits.conf
redis soft nofile 65535
redis hard nofile 65535
systemctl enable redis
systemctl start redis
# /etc/systemd/system/redis.service
[Unit]
Description=Redis
After=network.target
[Service]
User=redis
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
Restart=always
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable redis
systemctl start redis
如果只允许内网:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="6379" protocol="tcp" accept'
firewall-cmd --reload
❌ 不要直接开放 6379 到公网
redis-cli ping
# PONG
redis-cli info server
redis-cli info memory
❌ bind 0.0.0.0 + 无密码(极易被入侵)
❌ 数据目录权限不对(redis 用户无法写)
❌ 忘了 appendonly,重启丢数据
❌ 没关 THP,性能抖动
如果你愿意,我可以:
你可以直接把你的 redis.conf 贴出来。