`

JedisPool代码分析

 
阅读更多

JedisPool通过代理模式,将缓冲池的维护交给内部字段GenericObjectPool进行处理。 GenericObjectPool作为apache下commons.pool开源项目,可以直接拿来使用。

需要通过GenericObjectPool.Config告之池子的配置参数(最大活跃数、超时时间、空闲时间、是否出池检测)

实现BasePoolableObjectFactory抽象类,告诉通用池,如何创建对象(makeObject),销毁对象(detroyObject),检测对象(validateObject)

剩下的池子的管理和对象的维护,通用池会帮助处理。


JedisPool中缓存对象为Jedis对象,实现JedisCommand接口,完成redis的get、delete、set等业务方法。并通过内部代理对象Client实现具体的网络通信。每个Client会维护一个Socket,和redis server进行tcp长连接通信。


通过JedisPool缓存Jedis对象的方法,使得业务server端维护若干个tcp长连接与redis server进行通信,大大提高效率。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics