您的位置:首页 > 数据库 > Redis

spring data redis使用1——连接的创建

2017-03-14 09:33 176 查看
spring data redis集成了几个Redis客户端框架,Jedis , JRedis (Deprecated since 1.7), SRP (Deprecated since 1.7) and Lettuce ,JRedis和SRP已经在spring data redis的1.7版本被弃用了,我们使用Jedis
, JedisPoolJedisFatory类都是Jedis框架中的类,spring data redis 只是封装了工厂模式,提供了统一的RedisConnection 和 RedisConnectionFactory 接口 , 并提供了类似于JdbcTemplate这样的类进行Redis的操作,本文着重介绍Jedis如何实现了连接对象的池化管理





以下是Commons-pool的类图,当我们需要实现对象的池化功能时,都可以用这个框架来做。上图中GenericObjectPool类就是Commons-pool中的类,从时序图中也可以看到,连接池的创建代码位于redis.clients.jedis.JedisPool类中

在其构造方法中创建了连接池,创建的代码如下:

this.internalPool = new GenericObjectPool<Jedis>(new JedisFactory(h,
port, Protocol.DEFAULT_TIMEOUT, password, database, null),
new GenericObjectPoolConfig());
}                              //创建时传入两个参数,一个是连接池中对象的创建工厂类JedisFactory的实像,一个是连接池的配置对象,用于设置池中最大多少个对象等参数的


redis.clients.jedis.JedisFactory类则实现了Commons-pool框架中的 PooledObjectFactory接口 ,用于对池化对象的创建、销毁、激活等进行管理。由此可以总结下:我们如果想实现某类对象的池化功能,只要结合Commons-pool框架做如下几件事:

1.实现PooledObjecFactory接口

2.创建GenericObjectPool实例对,此时需要传入步骤1时的接口实例

完成这两部以后,就可调用GenericObjectPool实例的相关方法以池化的方式获取和使用相关对象了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: