提升 Debian 上 Redis 响应速度的系统化做法
一 基线测量与瓶颈定位
redis-cli --intrinsic-latency 30(观察30秒内的本机固有延迟)。redis-cli slowlog get 10 配合 slowlog-log-slower-than 10000(记录超过10ms的命令)、slowlog-max-len(保留条数)。redis-cli LATENCY LATEST 与 latency-monitor-threshold 1000(超过1ms即记录)。redis-cli info 关注 used_memory、connected_clients、instantaneous_ops_per_sec、mem_fragmentation_ratio。redis-benchmark -h 127.0.0.1 -p 6379 -t set,get -n 100000 -c 50 验证优化成效。redis-cli --bigkeys -i 0.1 找大 key,redis-cli memory usage <key> 精确查看占用。二 Redis 配置优化
save "" 或 save 3600 100),appendonly no。appendfsync everysec,AOF 重写阈值 auto-aof-rewrite-percentage 100、auto-aof-rewrite-min-size 64mb,重写期可设 no-appendfsync-on-rewrite yes;启用混合持久化 aof-use-rdb-preamble yes。appendfsync always(性能最低)。maxmemory <size>(如物理内存的60%–80%),淘汰策略优先 allkeys-lru 或 allkeys-lfu;碎片率高时开启 activedefrag yes。tcp-keepalive 60 及早清理僵死连接;按需调大 tcp-backlog 提升并发接入能力;合理设置 timeout 与客户端空闲回收。io-threads <N>(通常设为CPU 物理核数,不超过8起步),并设置 io-threads-do-reads yes 加速网络读写路径(注意:命令执行仍是单线程)。三 数据模型与命令使用
FLUSHDB/FLUSHALL ASYNC,避免主线程长时间阻塞。四 架构与客户端优化
replica-read-only yes,主库适度增大复制积压缓冲区 repl-backlog-size 512mb,repl-disable-tcp-nodelay no 降低复制延迟;写安全策略可用 min-replicas-to-write 1、min-replicas-max-lag 10。{user:1001} 保证相关业务 key 落在同一分片,减少跨分片访问。五 Debian 系统层面优化
echo never > /sys/kernel/mm/transparent_hugepage/enabled。fork 依赖内存分配策略,设置 vm.overcommit_memory=1(如 echo 1 > /proc/sys/vm/overcommit_memory),降低 fork 失败与阻塞风险。vm.dirty_background_ratio=5、vm.dirty_ratio=10)以减少同步阻塞;使用 SSD 提升 RDB/AOF 重写与 fsync 性能。ulimit -n(文件描述符)、隔离 noisy neighbor;必要时将持久化与业务流量分离到不同磁盘。