怎么调Redis参数才能撑起高并发,配置上有哪些坑和技巧分享
- 问答
- 2026-01-24 08:13:14
- 5
想把Redis调教成能扛住高并发的猛将,光靠默认配置是远远不够的,这就像给你一辆跑车,但你一直用怠速开,根本发挥不出它的威力,高并发场景下,Redis的瓶颈往往不在CPU,而在内存、网络和持久化策略上,下面就直接说关键的参数、容易踩的坑和实用的技巧。
第一,连接数是个大门,别让客户在门口排队。
高并发第一道坎就是连接,默认情况下,Redis的 maxclients 参数是10000,对于一般应用够了,但如果你的应用有海量短连接,这个数可能成为瓶颈,你需要用 info clients 命令监控 connected_clients 是否接近上限,如果接近,可以适当调高它,但这里有个大坑:操作系统对单个进程能打开的文件描述符数也有默认限制(通常是1024),你可能需要同时用 ulimit 命令提高系统的限制,否则光改Redis配置没用,连接数太多会耗内存,因为每个连接都需要占用资源,一个技巧是使用连接池,让连接复用,避免频繁创建和销毁连接的开销。
第二,内存是命根子,管理和淘汰策略是关键。
高并发下数据量大,内存最容易吃紧,Redis默认是无限使用内存,直到撑爆为止,这肯定不行,你必须设置 maxmemory 参数,限定Redis能使用的最大内存,设了上限之后,更关键的是设置 maxmemory-policy(内存淘汰策略),这是核心中的核心。
- 坑:千万别用默认的
noeviction(不淘汰),这会导致内存写满后所有写请求都失败,服务基本不可用。 - 技巧:根据你的数据特性选策略。
- 如果都是关键数据,不能丢,那就选
allkeys-lru(从所有key中淘汰最近最少使用的),这是最常用的策略。 - 如果你给key设置了过期时间,并且有冷热数据区分,可以用
volatile-lru(只从设了过期时间的key中淘汰最近最少使用的)。 - 如果想尽量保证公平,避免某些大key长时间占用内存,可以用
allkeys-random(随机淘汰)。 - 另一个大坑是关于持久化的:当使用AOF持久化且AOF文件在重写时,如果此时内存满了,Redis可能会因为要执行命令而无法淘汰出足够内存,导致写操作阻塞。
maxmemory不要设得“太满”,要留一点缓冲余地。
- 如果都是关键数据,不能丢,那就选
第三,持久化是双刃剑,平衡数据安全与性能。

Redis的持久化方式RDB和AOF,在高并发下需要精心调配。
-
RDB(快照):通过
save参数配置触发条件,save 900 1表示900秒内至少有1个key变化就保存一次。- 坑:默认配置可能会在流量高峰时触发BGSAVE,fork一个子进程来持久化,如果数据量很大,fork过程会阻塞主进程(虽然时间很短),可能导致瞬间延迟飙升。
- 技巧:根据业务低峰期调整触发条件,比如设置在凌晨,或者直接关闭自动保存,通过脚本在业务低峰期手动执行
bgsave。
-
AOF(追加日志):数据更安全,但对性能影响更大,关键参数是
appendfsync。
always:每个写命令都刷盘,最安全,但性能最差,高并发下基本不可用。everysec:每秒刷一次盘,是默认值,也是推荐值,在安全性和性能之间取得了很好的平衡。no:由操作系统决定何时刷盘,性能最好,但可能丢失较多数据(比如系统崩溃时)。- 技巧:AOF文件会越来越大,需要定期重写(
bgrewriteaof),要监控重写过程,因为和RDB的BGSAVE一样,也存在fork阻塞的风险,可以设置auto-aof-rewrite-percentage和auto-aof-rewrite-min-size来控制自动重写的触发条件。
第四,系统层面和网络层面的优化。
光调Redis本身还不够,系统环境也很重要。
- 关闭透明大页(Transparent Huge Pages):这是一个必坑项!Linux系统的这个特性会严重导致Redis在持久化fork时延迟极高,必须要在系统层面关闭它,网上搜“关闭透明大页 Redis”有详细命令,这是无数人踩过的血泪坑。
- 合理设置TCP backlog:
tcp-backlog参数决定了连接等待队列的长度,在高连接请求速率下,默认值511可能太小,可以适当增加到1024或更大,但要同时调整系统的/proc/sys/net/core/somaxconn值。 - 禁用SWAP:确保服务器有足够内存,并禁用交换分区,一旦Redis的数据被换出到磁盘,性能会断崖式下降。
也是最重要的技巧:监控。
不要凭感觉调参,一定要用 info 命令全面监控Redis的状态,关注几个关键指标:内存使用率、连接数、持久化状态、每秒命令处理量(ops)、延迟时间,通过监控数据来指导你调参,才能有的放矢。
高并发配置的核心思路是:打开连接的大门、管好内存的淘汰、平衡持久化的开销、扫清系统的障碍,并用监控数据说话。 没有一劳永逸的“黄金配置”,只有最适合你业务场景的配置。
本文由酒紫萱于2026-01-24发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://www.haoid.cn/wenda/84972.html
