温馨提示×

centos redis配置如何调优

小樊
60
2026-09-06 00:00:32
栏目: 云计算

在 CentOS 上优化 Redis 配置,通常从操作系统层面、Redis 自身配置、内存与持久化策略、监控与压测几个方面入手。下面给你一份相对系统、可落地的调优指南(基于 CentOS 7/8 + Redis 5/6/7)。


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

1. 关闭 Transparent Huge Pages(重要)

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

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

永久生效(CentOS 7/8):

# /etc/rc.d/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
chmod +x /etc/rc.d/rc.local

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

Redis 连接数高时需调大:

# /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

3. TCP 内核参数优化

# /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
vm.overcommit_memory = 1

应用:

sysctl -p

vm.overcommit_memory=1 可避免 fork 时 OOM


4. 使用 tuned(可选)

tuned-adm profile latency-performance

二、Redis 核心配置调优(redis.conf)

1. 绑定与端口

bind 0.0.0.0
port 6379

2. 最大内存与淘汰策略(最关键)

maxmemory 8gb
maxmemory-policy allkeys-lru

常见策略:

  • allkeys-lru:缓存场景常用
  • volatile-lru:只淘汰带 TTL 的 key
  • noeviction:写满报错(不推荐生产)

3. 持久化优化

RDB(快照)

save 900 1
save 300 10
save 60 10000

如果只做缓存:

save ""

AOF(日志)

appendonly yes
appendfsync everysec

always 最安全但慢,no 最快但不安全

AOF 重写:

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

4. 关闭或限制慢日志

slowlog-log-slower-than 10000
slowlog-max-len 128

5. 连接与超时

timeout 300
tcp-keepalive 60
maxclients 10000

6. 后台与进程

daemonize yes
pidfile /var/run/redis_6379.pid

三、内存与性能优化建议

1. 使用合适的数据结构

  • Hash 代替多个 String
  • 合理设置 TTL
  • 避免大 Key(>10KB)

2. 避免阻塞操作

  • 禁用 KEYS *
  • 使用 SCAN
  • 大集合用分批处理

3. 使用 Pipeline / 多命令

减少网络往返:

redis-cli --pipe

四、监控与压测

1. 内置命令

redis-cli info
redis-cli info memory
redis-cli info stats
redis-cli slowlog get

2. 压测工具

redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000

3. 监控工具

  • Prometheus + Redis Exporter
  • Grafana
  • redis-cli --stat

五、常见场景建议

场景 建议
纯缓存 关 RDB,开 LRU
高并发读 多实例 / 主从
高可用 Redis Sentinel / Cluster
低延迟 关闭 AOF,关闭 swap

六、总结(最简调优清单)

✅ 关 THP
✅ 调 maxmemory + 淘汰策略
✅ 合理 AOF / RDB
✅ 内核参数优化
✅ 避免大 Key
✅ 持续监控


如果你愿意,可以告诉我:

  • Redis 版本
  • 内存大小
  • 是否做缓存 or 持久化存储
  • QPS / 数据量

我可以直接帮你给一份具体 redis.conf 示例。

0 踩