jedis连接池的maxIdle和maxtotal参数

1.我们一般连接redis都需要用到连接池,最常用的就是jedis连接池,连接池中有两个参数的设置对高性能有较大影响:maxIdle和maxTotal
2.maxIdle的意思是连接池中空闲连接的最大数量,maxTotal是连接池中总连接的最大数量
3.之前我一般设置这两者的时候是没有设置成相等的值的,也就是比如设置maxIdle=10,然后maxTotal=30这样,但是基础架构的压测报告发现在高并发的情况下这样设置的后果竟然会产生大量的短连接,这样的结果令人非常意外,这些这么多的短链接是怎么产生的?
4.回答3的问题:还是以maxIdle=10,maxTotal=30作为例子,假设时刻1,30条连接全部使用来进行redis操作,时刻2,有20条连接释放,那么将会有10条连接放回连接池中,另外的10条连接将会被close掉,成为短连接,此时其他线程再来获取比如20个连接的时候,将会需要再额外创建10条连接。这就是短连接的主要产生场景;至于创建的短连接的数量取决于cpu的调度,简单归结原因是: 连接放回连接池的速度要比等待线程从线程池中获取连接要快,这样每次释放连接的时候都有部分连接超过maxIdle数量而被物理close掉成为短链接。至于为何释放连接的速度要比获取连接的速度快,留个悬念

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ctgjedispool是一个基于Jedis实现的连接池库,可以用来连接Redis数据库。 以下是ctgjedispool连接池的配置步骤: 1. 添加ctgjedispool依赖 在项目的pom.xml文件中添加以下依赖: ``` <dependency> <groupId>com.ctgjedispool</groupId> <artifactId>ctgjedispool</artifactId> <version>1.0.0</version> </dependency> ``` 2. 配置连接池参数 在项目的配置文件中,添加以下连接池参数: ``` #Redis服务器地址 redis.host=127.0.0.1 #Redis服务器端口 redis.port=6379 #Redis服务器密码 redis.password=123456 #连接池最大连接数 redis.maxTotal=500 #连接池最大空闲连接数 redis.maxIdle=10 #连接池最小空闲连接数 redis.minIdle=2 #获取连接时的最大等待毫秒数 redis.maxWaitMillis=10000 #在获取连接的时候检查有效性,默认为false redis.testOnBorrow=false #在归还连接的时候检查有效性,默认为false redis.testOnReturn=false ``` 3. 创建连接池Java代码中,使用以下代码创建连接池: ``` JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(Integer.parseInt(env.getProperty("redis.maxTotal"))); config.setMaxIdle(Integer.parseInt(env.getProperty("redis.maxIdle"))); config.setMinIdle(Integer.parseInt(env.getProperty("redis.minIdle"))); config.setMaxWaitMillis(Integer.parseInt(env.getProperty("redis.maxWaitMillis"))); config.setTestOnBorrow(Boolean.parseBoolean(env.getProperty("redis.testOnBorrow"))); config.setTestOnReturn(Boolean.parseBoolean(env.getProperty("redis.testOnReturn"))); JedisPool jedisPool = new JedisPool(config, env.getProperty("redis.host"), Integer.parseInt(env.getProperty("redis.port")), 10000, env.getProperty("redis.password")); ``` 4. 使用连接池 使用连接池Redis数据库中获取连接,进行相关操作: ``` try (Jedis jedis = jedisPool.getResource()) { // 使用jedis进行相关操作 } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值