Ubuntu 上让 Redis 性能最佳的可执行方案
一 系统层优化
net.core.somaxconn=65535;net.ipv4.tcp_tw_reuse=1;net.ipv4.tcp_keepalive_time=300sudo sysctl -p 使配置生效。二 Redis 配置优化
maxmemory <可用内存-预留>(如物理内存的 70%–80%),按访问特征选择淘汰算法:通用缓存用 allkeys-lru,仅对有过期时间的键用 volatile-lru。save 900 1、save 300 10、save 60 10000。appendfsync everysec(在性能与持久化间折中)。timeout(释放空闲连接);开启 tcp-keepalive 保持长连接;在 bind 与防火墙层面仅暴露必要接口与网段。maxmemory 4gbmaxmemory-policy allkeys-lrusave 900 1;save 300 10;save 60 10000appendonly yes;appendfsync everysectimeout 300;tcp-keepalive 300bind 127.0.0.1(仅本机)或配合 UFW 限制来源 IP;如需远程,务必设置强密码 requirepass。三 客户端与访问模式
DEL/FLUSH、超大集合的 KEYS *;使用 SCAN 替代 KEYS,分批处理。四 监控 验证 与 扩展
redis-cli --stat、INFO(关注 instantaneous_ops_per_sec、used_memory、evicted_keys、blocked_clients)。五 快速检查清单
| 优化项 | 建议值或做法 | 关键指标 |
|---|---|---|
| maxmemory | 物理内存的 70%–80% | used_memory、maxmemory、evicted_keys |
| maxmemory-policy | 缓存:allkeys-lru;有过期键:volatile-lru | evicted_keys 趋势 |
| RDB | save 900 1;save 300 10;save 60 10000 |
latest_fork_usec、rdb_last_save_time |
| AOF | appendonly yes;appendfsync everysec |
aof_enabled、aof_last_rewrite_time |
| 网络 | tcp-keepalive 300;必要时调高内核 somaxconn |
instantaneous_ops_per_sec、connected_clients |
| 安全 | 仅内网或 UFW 白名单;强密码 requirepass |
rejected_connections |
| 监控 | INFO/--stat + Prometheus/Grafana |
延迟、命中率、阻塞客户端 |