云数据库 GEMINIDB-客户端连接池参数配置:参数说明

时间:2024-03-25 20:23:56

参数说明

Jedis连接就是连接池中JedisPool管理的资源,JedisPool保证资源在一个可控范围内,并且保障线程安全。使用合理的GenericObjectPoolConfig配置能够提升Redis的服务性能,降低资源开销。下将对一些重要参数进行说明,并提供设置建议。

表1 Jedis常用参数配置说明

Jedis参数

参数说明

默认值

建议值

maxTotal

当前资源池可并发的最大连接数,单位:个。

Redis连接数要根据具体的业务量进行设置,连接数太大浪费资源,过小无法获取连接,影响业务。

8

客户端节点数*maxTotal不能超过Redis的最大连接数。

假设一个连接的QPS大约是1s/1ms = 1000,而业务期望的单个Redis的QPS是50000,那么理论上需要的资源池大小(即MaxTotal)是50000 / 1000 = 50。

maxIdle

资源池中最大的空闲连接数,单位:个。

达到后资源池会开始回收空闲连接,直到空闲连接数达到minIdle个数。主要避免空连接占用,资源浪费。

8

maxIdle实际上才是业务需要的最大连接数,maxTotal 是为了给出余量,所以maxIdle不要设置得过小,否则会有new Jedis(新连接)开销。

minIdle

资源池中保持最小的空闲可用连接数,单位:个

这部分连接数不会被回收,可防止流量增量时,连接创建不及时。

0

10~20

maxWaitMillis

资源池连接用尽后,调用者的最大等待时间,单位:毫秒。

-1

建议设置一个合理的超时时间,避免出现当连接池用尽后,应用阻塞不响应的情况。

testWhileIdle

是否在空闲资源监测时通过PING命令监测连接有效性,无效连接将被销毁。

false

true

testOnBorrow

每次向资源池获取连接时是否做连接有效性检测(发送PING请求),无效连接会被释放。

false

建议使用默认值。设为true相当于在每个命令执行完前先发一个PING命令,对高并发请求应用的性能有影响。对于业务可用性要求比较高的场景,可以设为true,可以保证连接有效的。

testOnReturn

每次向连接池归还连接时是否做连接有效性检测(发送PING请求),无效连接会被释放。

false

建议使用默认值。设为true相当于在每个命令执行完后再发一个PING命令,对高并发请求应用的性能有影响。

timeout

Jedis的socket timeout值,单位:毫秒。

2000

200~1000

support.huaweicloud.com/redisug-nosql/nosql_03_0802.html