温馨提示×

centos redis配置怎么优化

小樊
49
2026-10-02 22:10:15
栏目: 云计算

在 CentOS 上优化 Redis,一般从 操作系统层面、Redis 自身配置、内存与持久化策略、网络与监控 几个方面入手。下面按实用优先级给你一套可落地的优化建议。


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

1. 关闭透明大页(THP)

Redis 官方明确不建议使用 THP:

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

永久生效(CentOS 7/8):

# /etc/rc.local 或 systemd 中执行

2. 调整系统内存与 overcommit

echo 1 > /proc/sys/vm/overcommit_memory

推荐配置:

vm.overcommit_memory = 1

写入 /etc/sysctl.conf:

sysctl -w vm.overcommit_memory=1

3. 提高文件描述符限制

ulimit -n 65535

永久配置 /etc/security/limits.conf:

* soft nofile 65535
* hard nofile 65535

4. 关闭 swap(或降低 swappiness)

sysctl vm.swappiness=1

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

1. 绑定与端口

bind 0.0.0.0
port 6379

⚠️ 生产环境建议:

  • 内网绑定
  • 启用密码
requirepass yourpassword

2. 内存优化(最重要)

maxmemory 8gb
maxmemory-policy allkeys-lru

常见策略:

  • allkeys-lru(通用推荐)
  • volatile-lru(只淘汰带过期时间的 key)
  • noeviction(不淘汰,写报错)

3. 持久化优化

RDB(快照)

save 900 1
save 300 10
save 60 10000

AOF(日志)

appendonly yes
appendfsync everysec

⚠️ 高性能场景:

appendfsync no

(风险:宕机可能丢数据)


4. 关闭无用功能

save ""
# 不使用 RDB

或:

appendonly no

(根据业务选择)


5. 网络与连接

tcp-backlog 511
timeout 300
tcp-keepalive 60

6. 慢查询日志

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

三、Redis 运行模式优化

1. 使用 systemd 管理

systemctl enable redis
systemctl start redis

确保:

daemonize no
supervised systemd

2. 单线程优化(CPU)

Redis 是单线程:

  • 绑定 CPU
taskset -c 0 redis-server

3. 主从 + 哨兵 / 集群

  • 读多写少:主从
  • 大数据量:Redis Cluster

四、监控与调优工具

1. 内置命令

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

2. 监控工具

  • Redis Exporter + Prometheus
  • Grafana
  • redis-stat

五、常见性能问题排查

问题 原因 解决
延迟高 大 key 拆分 key
CPU 高 慢命令 优化命令
内存爆 无淘汰 设置 maxmemory
写阻塞 AOF fsync 改 everysec/no

六、示例:生产推荐配置(简化版)

bind 0.0.0.0
port 6379
requirepass 123456
maxmemory 8gb
maxmemory-policy allkeys-lru
appendonly yes
appendfsync everysec
tcp-backlog 511
timeout 300
slowlog-log-slower-than 10000

如果你能告诉我:

  • Redis 版本
  • 数据量
  • 读多还是写多
  • 是否用持久化

我可以给你 更精准的配置模板。

0 踩