Redisson使用的连接总数是否为subscriptionConnectionPoolSize与connectionPoolSize之和?
Redisson 总连接数计算规则
我想要了解Redisson使用的总连接数的计算方式,目前我的理解是,该总连接数为subscriptionConnectionPoolSize与connectionPoolSize两个参数的数值之和。
你的理解在单Redis节点部署场景下是正确的,实际总连接数需要结合你使用的Redis部署模式调整,具体规则如下:
- 单节点模式:理论最大总连接数 =
connectionPoolSize(常规操作专用连接池最大容量) +subscriptionConnectionPoolSize(发布订阅专用连接池最大容量) - 哨兵模式:理论最大总连接数 = (
connectionPoolSize+subscriptionConnectionPoolSize) * 数据节点数量 + 每个哨兵节点单独维持的1个监控连接 - 集群模式:理论最大总连接数 = (
connectionPoolSize+subscriptionConnectionPoolSize) * 集群主节点数量
有两个需要注意的特殊情况:
- 如果你的业务没有用到Redis发布订阅相关功能,发布订阅连接池不会被初始化,此时实际运行的最大连接数不会超过
connectionPoolSize的配置值 - 上述数值为理论峰值,实际运行中的连接数会根据业务请求量动态扩容,闲置超过
idleConnectionTimeout阈值的连接会被自动回收,不会一直占用资源
内容的提问来源于stack exchange,提问作者four
相关产品推荐
相关产品推荐

