赞
踩
连接池里面放置的是空闲连接,如果被使用 (borrow)掉,连接池就会少一个连接,连接使用完后进行放回 (return),连接池会增加一个可用连接。如果没有可用连接,便会新建连接
在客户端启动的时候,会从某一个redis 服务上面,获取到后端cluster集群上面所有的redis服务列表【cluster info】(比如redis1 和redis2),并且对每一个redis服务建立独立的连接池。如果访问后端 redis服务,会先通过CRC16计算访问的key确定slot,再通过slot选择对应的 连接池(比如redis1的pool),再从对应的连接池里面获取连接,访问后端 服务。
public static class JedisPool { /** * 最大空闲连接数,不能超过Redis 实例的最大连接数 */ private int maxIdle = 10; /** * 最小空闲连接数,不能超过Redis 实例的最大连接数 */ private int minIdle = 10; /** * 最大连接数,不能超过Redis 实例的最大连接数 线上规格最大连接数 6W ,期望QPS 20W,两分片,单个redis 10W ,一次 Redis 平均耗时 1ms ,一个链接的QPS 大约是 1s/1ms = * 1000, 最多允许的是= 10W/1000=100,当前设置为40 */ private int maxTotal = 40; /** * 获取连接时的最大等待毫秒数,如果超时就抛异常 */ private int maxWaitMillis = 1000; /** * 在获取连接的时候检查有效性, 默认false,业务量大的时候减少一次 ping 的开销 */ private boolean testOnBorrow = false; /** * 在空闲时检查有效性, 默认false,业务量大的时候减少一次 ping 的开销 */ private boolean testOnReturn = false; }
当你发现这些内容对你有帮助时,为了支持我的工作,不妨给一个免费的⭐Star,这将是对我最大的鼓励!感谢你的陪伴与支持!一起在技术的路上共同成长吧!点击链接:GitHub | Gitee
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。