讲师中心 微信公众号
AI工具推荐 视频效率加速

如何解决Redis集群在高并发下的连接池耗尽问题?

夜敏姑娘_1926

夜敏姑娘_1926

发布时间:2026-09-02 09:34:15

|

957人浏览过

|

来源于php中文网

原创

确认连接池耗尽而非Redis宕机:先执行redis-cli info clients | grep connected_clients和redis-cli config get maxclients,若connected_clients接近maxclients且日志出现“ERR max number of clients reached”或“Could not get a resource from the pool”,即为客户端连接池耗尽。

如何解决redis集群在高并发下的连接池耗尽问题?

连接池耗尽不是Redis服务端崩了,而是客户端没管好连接生命周期,或者池子大小和业务节奏对不上。

怎么确认是连接池耗尽而不是Redis挂了

先别急着调参,用两行命令快速定位:redis-cli info clients | grep connected_clients 查当前活跃连接数,redis-cli config get maxclients 查服务端上限。如果 connected_clients 接近 maxclients,且应用日志里反复出现 ERR max number of clients reached 或 Could not get a resource from the pool,基本就是连接池卡住了。

注意:这不等于 Redis 本身负载高——CPU 和内存可能都很闲,但连接数已经焊死在上限。

Jedis/Redisson 连接池关键参数怎么设才不踩坑

Java 生态里最常出问题的是 maxTotal、maxIdle、minIdle 和 maxWaitMillis 四个参数。它们不是越大越好,也不是固定值:

Redis Skill - 高性能缓存管理
Redis Skill - 高性能缓存管理

Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。

下载
  • maxTotal 建议设为应用部署节点的 CPU 核心数 × 2~4,比如 8 核机器配 16~32;超过这个值,线程争抢连接反而拖慢响应
  • minIdle 不要设 0,至少给 2~5 个“常驻”连接,应对突发流量,避免每次突增都要新建连接
  • maxWaitMillis 必须设(比如 100~500ms),否则线程会无限等待,最终拖垮整个线程池
  • testOnBorrow 在生产环境慎开——每次取连接都做 ping 检测,QPS 高时开销明显;改用 testWhileIdle + timeBetweenEvictionRunsMillis 更稳妥

为什么连接数一直涨不降?重点查这几处泄漏点

连接池配置再合理,代码漏关连接也白搭。高频泄漏场景集中在:

  • 没用 try-with-resources 或没在 finally 块里调 jedis.close() / redissonClient.shutdown()
  • 异步任务(如 CompletableFuture)里获取连接后,异常分支没回收连接
  • Spring Boot 中误配了 @Bean 的作用域,把 JedisPool 声明成 prototype,导致每个请求都新建池子
  • HTTP 客户端(如 WebClient)或消息队列消费者里,Redis 操作嵌套在长生命周期对象中,连接随对象驻留不释放

用 redis-cli client list 查看连接来源 IP 和 idle 时间,idle 超过 5 分钟还挂着的连接,大概率是泄漏源。

单实例扛不住时,别只想着加 maxclients

盲目调大 maxclients 会撞上操作系统文件描述符限制(ulimit -n),还可能压垮 Redis 实例本身。更可持续的做法是:

  • 横向拆分:按业务域或用户 ID 分片,把一个大池子变成多个小池子,各自隔离
  • 读写分离:只让写操作走主节点连接池,读操作走从节点池,降低主节点连接压力
  • 引入代理层(如 Twemproxy 或 Redis Cluster 官方客户端),由中间层做连接复用,客户端只需管少量连接

真正难的不是算出该配多少连接,而是让每次 getResource() 都能对应一次 returnResource() —— 这部分逻辑一旦散落在十几处业务代码里,监控和修复成本就远高于初期加个统一封装。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4189

2023.11.02

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

3675

2023.11.14

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6572

2024.04.02

redis怎么做缓存服务器
redis怎么做缓存服务器

redis 作为缓存服务器的答案:redis 是一款开源、高性能、分布式的键值存储,可作为缓存服务器使用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

623

2024.04.07

redis怎么解决数据一致性
redis怎么解决数据一致性

redis 提供了两种一致性模型,以维护副本数据一致性:强一致性 (sync) 确保写操作仅在复制到所有从节点后才完成;最终一致性 (async) 则在主节点上写操作后认为已完成,牺牲一致性换取性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

736

2024.04.07

mysql和redis怎么保证双写一致性
mysql和redis怎么保证双写一致性

确保 mysql 和 redis 双写一致性的技术包括:1、事务性更新:同时更新 mysql 和 redis,保证一致性;2、主从复制:mysql 主服务器更改同步到 redis 从服务器;3、基于事件的更新:mysql 记录更改并发送到 redis等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6082

2024.04.07

redis缓存一般存些什么数据
redis缓存一般存些什么数据

redis缓存中存储的数据类型包括:字符串、哈希、列表、集合、有序集合、位图、地理空间数据和hyperloglog。这些数据类型适用于存储各种数据,从简单信息到复杂对象和地理位置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1140

2024.04.07

redis的8种数据类型有哪些
redis的8种数据类型有哪些

redis 提供 8 种数据类型:字符串(文本、数字、二进制)、哈希(键值对)、列表(有序集合)、集合(无序唯一元素)、有序集合(按分数排序)、地理空间(地理位置)、hyperloglog(估计大数据基数)和位图(位序列存储)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

996

2024.04.07

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

0

2026.09.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn