Redis的softMinEvictableIdleTimeMillis,minEvictableIdleTimeMillis是一个令人疑惑两个参数,特别是当它和minIdle组合起来时就更难理解了,本文就来梳理下他们的之间的关系
看到了没,对于softMinEvictableIdleTimeMillis来说:只有空闲时间大于softMinEvictableIdleTimeMillis并且此时连接池中空闲连接数大于minIdle时才会关闭连接,而对于minEvictableIdleTimeMillis来说,只要空闲连接时间大于minEvictableIdleTimeMillis就会把连接关闭,ok,那这里的你是否想过minEvictableIdleTimeMillis关闭连接后是有可能导致空闲连接数小于minIdle数量的,那是不是和你想象中的连接池里面肯定有minIdle的连接数相矛盾?继续往下看:
其实这个连接池中连接数小于minIdle的时间是很短暂的,因为下一行方法就会判断连接数是否满足minIdle,如果不满足,他会创建新的redis连接,所以理解这里的关键在于意识到minIdle有可能会短暂的不满足的