一、基础配置redis.conf1. 通用与守护进程inidaemonize yes # 后台运行pidfile /var/run/redis_6379.pidlogfile /var/log/redis/redis.logloglevel notice # 生产用 notice / warningdatabases 16 # 默认库数量业务尽量用单库2. 网络配置高并发必备inibind 0.0.0.0 # 监听所有IP按需限制port 6379tcp-backlog 511 # 与内核 net.core.somaxconn 一致tcp-keepalive 300 # 检测死连接秒timeout 0 # 客户端空闲不主动断开maxclients 65535 # 最大连接数配合系统 ulimit -n 655353. 内存核心配置最关键inimaxmemory 12gb # 物理内存 70%~80%16G内存设12Gmaxmemory-policy allkeys-lru # 缓存场景首选# 策略说明# allkeys-lru 所有key用LRU淘汰通用缓存# volatile-lru 仅带TTL的key LRU混合存储# allkeys-lfu 访问频率最少淘汰热点明显场景# noeviction 不淘汰满了直接报错强一致持久化# 内存碎片整理Redis 4.0activedefrag yesactive-defrag-threshold-lower 10active-defrag-threshold-upper 50# 惰性删除避免大key删除阻塞lazyfree-lazy-eviction yeslazyfree-lazy-expire yeslazyfree-lazy-server-del yes4. 持久化配置性能 vs 安全1RDB 快照备份、恢复快inisave 900 1save 300 10save 60 10000# 纯缓存可关闭save rdbcompression yesrdbchecksum yesdbfilename dump.rdbdir /data/redis2AOF 日志数据安全高iniappendonly yes # 生产建议开启appendfilename appendonly.aof# 刷盘策略三选一# appendfsync always # 最安全、最慢金融强一致appendfsync everysec # 折中生产推荐# appendfsync no # 最快、丢数据多auto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mb# 混合持久化Redis 4.0 最佳实践aof-use-rdb-preamble yes5. 多线程 IOiniio-threads 4 # CPU核心数的 1~2 倍io-threads-do-reads yes # 读请求也用多线程6. 慢查询与超时inislowlog-log-slower-than 10000 # 10ms 以上记录慢查询slowlog-max-len 128hz 100 # 定时任务频率过期清理更及时7. 安全配置inirequirepass 你的强密码 # 必设rename-command CONFIG # 禁用危险命令rename-command FLUSHDB rename-command FLUSHALL rename-command KEYS # 禁止 KEYS *二、性能优化1. 内存优化maxmemory 必须设不设会 OOM 被系统杀死。淘汰策略纯缓存 →allkeys-lru / allkeys-lfu缓存 持久化 →volatile-lru强一致存储 →noeviction内存碎片监控mem_fragmentation_ratio 1.5需优化开启activedefrag或定期重启内存使用技巧小对象用Hash替代多个 String2. 持久化优化混合持久化4.0aof-use-rdb-preamble yesAOF 重写时先写 RDB 再追加 AOF恢复极快、数据安全RDB低峰备份避免频繁 saveAOF高并发用everysec关闭appendfsync always除非必须强一致3. 网络与连接优化TCP 参数内核ininet.core.somaxconn 511net.ipv4.tcp_syncookies 1net.ipv4.tcp_tw_reuse 1客户端使用连接池JedisPool/Lettuce避免频繁断连 / 新建连接批量操作Pipeline打包命令减少 RTTMGET/MSET 替代多次 GET/SET4. 线程与 CPU 优化Redis 6.0开启多线程 IOiniio-threads 4io-threads-do-reads yes绑定 CPU隔离核taskset -c 2-5 redis-server避免与其他服务争抢 CPU5. 数据结构最佳实践简单 KV、计数器 →String对象、属性集 →Hash消息队列、栈 →List去重、交集 →Set排行榜、有序队列 →Sorted Set消息流、精确消费 →Stream三、系统层面优化ini# 1. 内存与Swapvm.swappiness 0 # 尽量不用Swapvm.overcommit_memory 1 # Redis 要求# 2. 文件句柄ulimit -n 65535# 3. 透明大页THP禁用echo never /sys/kernel/mm/transparent_hugepage/enabled# 4. 文件系统# 数据盘用 ext4/xfs关闭 atimemount -o noatime# 5. 内核TCPnet.ipv4.tcp_max_syn_backlog 511四、监控指标info memoryused_memory、maxmemory、mem_fragmentation_ratioinfo statskeyspace_hits /keyspace_misses命中率 95%evicted_keys淘汰数info persistenceaof_pending_bio_fsync、rdb_bgsave_in_progressslowlog get 10慢查询连接数、QPS、延迟五、场景化配置建议场景 1纯缓存如会话、页面缓存maxmemory-policyallkeys-lruappendonlyno或仅 RDB允许一定淘汰追求性能场景 2持久化存储如配置、订单maxmemory-policynoevictionappendonlyyeseverysecaof-use-rdb-preambleyes定期备份 RDB场景 3高并发读写电商、直播多线程 IOio-threads 4~8maxclients65535Pipeline 批量、连接池复用