我希望监视并定期记录有关redis连接池使用情况的信息。我通过spring数据redis redistemplate对象使用redis。有办法进入游泳池吗?
vnjpjtjt1#
我可以使用反射api访问内部池。
private GenericObjectPool<Jedis> jedisPool() { try { Field pool = JedisConnectionFactory.class.getDeclaredField("pool"); pool.setAccessible(true); Pool<Jedis> jedisPool = (Pool<Jedis>) pool.get(jedisConnectionFactory()); Field internalPool = Pool.class.getDeclaredField("internalPool"); internalPool.setAccessible(true); return (GenericObjectPool<Jedis>) internalPool.get(jedisPool); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } }
1条答案
按热度按时间vnjpjtjt1#
我可以使用反射api访问内部池。