温馨提示×

Centos Redis配置优化怎么做

小樊
38
2026-07-20 02:48:02
栏目: 云计算

CentOS 上做 Redis 配置优化,一般从 操作系统层 + Redis 配置层 + 架构层 三个维度来做。下面给你一套生产环境常用优化方案,按优先级整理,适合大多数场景。


一、操作系统层优化(CentOS)

1️⃣ 关闭 Transparent Huge Pages(必须)

Redis 官方强烈建议关闭 THP,否则会导致延迟抖动。

# 查看
cat /sys/kernel/mm/transparent_hugepage/enabled

# 临时关闭
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

# 永久关闭(CentOS 7)
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.d/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

2️⃣ 调整系统最大文件描述符

Redis 连接多时会用到。

ulimit -n

推荐设置:

# 临时
ulimit -n 65535

# 永久(CentOS 7)
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

3️⃣ 内核参数优化(重要)

vim /etc/sysctl.conf
vm.swappiness = 1
vm.overcommit_memory = 1
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535

生效:

sysctl -p

overcommit_memory=1 避免 bgsave 时 fork 失败
swappiness=1 防止 Redis 被 swap


二、Redis 配置文件优化(redis.conf)

路径一般:/etc/redis.conf/etc/redis/redis.conf


4️⃣ 内存相关优化(最关键)

✅ 设置最大内存

maxmemory 8gb

✅ 淘汰策略(按业务选择)

maxmemory-policy allkeys-lru

常用策略:

策略 说明
noeviction 不淘汰(写失败)
allkeys-lru 所有 key LRU
volatile-lru 过期 key LRU
allkeys-random 随机淘汰

✅ 缓存场景推荐:allkeys-lru


5️⃣ 持久化优化(性能 & 安全权衡)

✅ RDB(性能优先)

save 900 1
save 300 10
save 60 10000

或关闭(纯缓存):

save ""

✅ AOF(数据安全优先)

appendonly yes
appendfsync everysec
模式 性能 安全
always
everysec ✅
no

推荐:appendfsync everysec


6️⃣ 网络 & 连接优化

tcp-backlog 65535
timeout 0
tcp-keepalive 60
maxclients 10000

7️⃣ 关闭或限制危险命令

rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command SHUTDOWN ""

三、Redis 运行模式优化

8️⃣ 使用 systemd 管理 Redis

systemctl restart redis
systemctl enable redis

9️⃣ 避免主线程阻塞

✅ 避免:

  • 大 key(>10KB)
  • 慢查询(KEYS *
  • Lua 脚本执行时间过长

查看慢日志:

redis-cli slowlog get 10

四、架构层优化(高并发必看)

✅ 1️⃣ 使用 Redis 6+(支持多线程 IO)

redis-server --version

开启 IO 多线程(CPU 多核):

io-threads-do-reads yes
io-threads 4

✅ 2️⃣ 主从 + 哨兵 / Cluster

场景 推荐
高可用 主从 + Sentinel
大数据量 Redis Cluster

五、常用性能检查命令

redis-cli info memory
redis-cli info stats
redis-cli info replication
redis-cli info cpu

六、推荐生产配置模板(示例)

bind 0.0.0.0
port 6379
maxmemory 16gb
maxmemory-policy allkeys-lru
appendonly yes
appendfsync everysec
tcp-backlog 65535
timeout 0
tcp-keepalive 60
maxclients 10000
io-threads 4
io-threads-do-reads yes

七、如果你愿意,我可以帮你:

  • ✅ 根据你 内存 / QPS / 数据量 定制配置
  • ✅ 分析 redis-cli info 输出
  • ✅ 判断是否该用 Cluster
  • ✅ 排查 Redis 延迟 / 卡顿问题

你可以直接贴:

Redis 版本 + 内存 + QPS + 是否持久化 + 业务场景

0