温馨提示×

centos redis配置怎样优化

小樊
47
2026-10-26 09:36:57
栏目: 云计算

在 CentOS 上优化 Redis 配置,通常从内存、持久化、网络、内核参数、安全与运维几个方面入手。下面给你一套实用、可落地的优化清单(以 CentOS 7/8 + Redis 6/7 为例)。


一、基础配置文件优化(redis.conf)

1. 内存相关

maxmemory 8gb
maxmemory-policy allkeys-lru
  • maxmemory:建议为物理内存的 60%~70%
  • 策略说明:
    • allkeys-lru:通用缓存
    • volatile-lru:只淘汰带 TTL 的 key
    • noeviction:不淘汰(写会报错,不推荐)

2. 持久化优化

RDB

save 900 1
save 300 100
save 60 10000
  • 如果只做缓存,可关闭:
save ""

AOF(如开启)

appendonly yes
appendfsync everysec
  • always:最安全但慢
  • everysec:推荐
  • no:依赖 OS

3. 禁用危险/无用功能

protected-mode yes
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS ""

二、CentOS 系统层优化

1. 关闭透明大页(THP)

Redis 官方强烈建议关闭:

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

永久生效:

# /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

2. 文件描述符限制

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

Redis 配置:

maxclients 10000

3. 内核参数优化(/etc/sysctl.conf)

vm.overcommit_memory = 1
net.core.somaxconn = 1024
net.ipv4.tcp_max_syn_backlog = 8192

生效:

sysctl -p

overcommit_memory=1 可避免 fork 时 OOM


三、网络与性能优化

1. 绑定网卡 & 端口

bind 0.0.0.0
port 6379
tcp-backlog 511

如仅内网访问,建议 bind 内网 IP。

2. 关闭慢日志影响

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

四、Redis 运行方式优化

1. 使用 systemd 管理

systemctl enable redis
systemctl start redis

2. 单线程优化(Redis < 6)

  • 避免大 key
  • 避免 KEYS *
  • 使用 pipeline / batch

3. Redis 6+ 多线程 I/O(可选)

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

仅适合高并发读场景


五、监控与维护建议

1. 命令监控

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

2. 大 key 检测

redis-cli --bigkeys

3. 定期清理

  • 合理设置 TTL
  • 避免 list / hash 无限增长

六、常见性能问题排查顺序

  1. 是否大 key
  2. 是否开启了 AOF + always
  3. 是否 THP 未关
  4. 是否 maxmemory 打满
  5. 是否 CPU 单核瓶颈

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

  • Redis 版本
  • 单机还是集群
  • 主要用途(缓存 / 队列 / 存储)
  • CentOS 版本

我可以给你一套针对性配置模板。

0 踩