在 CentOS 上配置和使用 Redis,有几个容易踩坑但很关键的地方,下面按“系统层面 → Redis 配置 → 安全 → 性能运维”给你梳理一下。
yum install -y epel-release
yum install -y redis
或者直接用 Redis 官方 RPM(版本更新)。
CentOS 默认开启 THP,会导致 Redis 延迟抖动:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
并写入开机脚本或 /etc/rc.d/rc.local
bind 127.0.0.1
# 或内网 IP
bind 192.168.1.10
⚠️ 不要直接 bind 0.0.0.0 且不设密码
requirepass your_strong_password
客户端连接:
redis-cli -a password
protected-mode yes
(公网环境必须开)
根据业务选择:
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfsync everysec
⚠️ AOF + 高写入 = 磁盘 IO 压力
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""
Redis 默认用 redis 用户运行,确认一下:
ps -ef | grep redis
否则内存爆了直接 OOM:
maxmemory 2gb
maxmemory-policy allkeys-lru
常见策略:
allkeys-lru:通用缓存volatile-lru:只淘汰带 TTL 的 keytcp-backlog 511
timeout 0
slowlog-log-slower-than 10000
slowlog-max-len 128
systemctl enable redis
systemctl start redis
logfile /var/log/redis/redis.log
定期清理或接 logrotate
❌ 公网裸奔 Redis(被挖矿) ❌ 不限制 maxmemory ❌ 开 THP 导致延迟 ❌ AOF 不配但要求不丢数据 ❌ 用 root 跑 Redis
如果你愿意,可以告诉我:
我可以给你一份可直接用的 redis.conf 模板。