一、不使用连接池管理时
spring.redis.host=localhost spring.redis.port=6379
1.高并发使用get set del等方,连接只会有一个(另外两个一个是我本地使用的client方法查询连接信息,另一个是服务启动获取redis信息的INFO连接)
2.当高并发使用pipeline,lettuce在openPipeline时会产生新的连接。如果不使用连接池,连接数会爆炸。
二、使用连接池
spring.redis.host=localhost spring.redis.port=6379 spring.redis.lettuce.pool.max-active=8 spring.redis.lettuce.pool.max-idle=2
1.高并发使用get set del等方,连接也只会有一个(另外两个一个是我本地使用的client方法查询连接信息,另一个是服务启动获取redis信息的INFO连接)
图中cmd=NULL的为空闲连接
2.当高并发使用pipeline,lettuce在openPipeline时会产生新的连接。但是连接会由连接池管理,数量也会被限制。
图中cmd=NULL的可能是空闲连接也可能是pipeline连接。当pipeline并发较高时,基本上是pipeline连接。如果pipeline请求停掉,那cmd=NULL会只剩下两个,对应spring.redis.lettuce.pool.max-idle=2的配置