在Spring中,我有一个像这样的jedisConnFactory和一个jedisPoolConfig bean
<bean id="jedisConnFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="127.0.0.1" p:port="6379" p:poolConfig-ref="jedisPoolConfig" />
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="${redis.pool.maxTotal}" />
<property name="maxIdle" value="${redis.pool.maxIdle}" />
<property name="maxWaitMillis" value="${redis.pool.maxWaitMillis}" />
</bean>
将数据发送到服务器是可以的。但我不知道如何验证JedisPoll是否正常工作。
如何查看活动,空闲连接的数量?
答案 0 :(得分:0)
确保在池配置中启用了JMX。请注意,也可以传递GenericObjectPoolConfig,这使您可以完全控制对象池。然后,您可以通过带有jconsole的JMX连接到您的应用程序,并且可以跟踪连接池的实际状态。
答案 1 :(得分:0)
我们可以通过Java反射获得指标:
Field poolField = JedisConnectionFactory.class.getDeclaredField("pool");
poolField.setAccessible(true);
Pool<Jedis> jedisPool = (Pool<Jedis>)poolField.get(connectionFactory);
int activeNum = jedisPool.getNumActive();
int idleNum = jedisPool.getNumIdle();
int waitNum = jedisPool.getNumWaiters();
long maxBorrowWaitMs = jedisPool.getMaxBorrowWaitTimeMillis();
long meanBorrowWaitMs = jedisPool.getMeanBorrowWaitTimeMillis();
输出:
pool monitor - activeNum=0,idleNum=1,waitNum=0, maxBorrowWaitMs=7, meanBorrowWaitMs=0