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
, JedisPool和JedisFatory类都是Jedis框架中的类,spring data redis 只是封装了工厂模式,提供了统一的RedisConnection 和 RedisConnectionFactory 接口 , 并提供了类似于JdbcTemplate这样的类进行Redis的操作,本文着重介绍Jedis如何实现了连接对象的池化管理
以下是Commons-pool的类图,当我们需要实现对象的池化功能时,都可以用这个框架来做。上图中GenericObjectPool类就是Commons-pool中的类,从时序图中也可以看到,连接池的创建代码位于redis.clients.jedis.JedisPool类中
在其构造方法中创建了连接池,创建的代码如下:
redis.clients.jedis.JedisFactory类则实现了Commons-pool框架中的 PooledObjectFactory接口 ,用于对池化对象的创建、销毁、激活等进行管理。由此可以总结下:我们如果想实现某类对象的池化功能,只要结合Commons-pool框架做如下几件事:
1.实现PooledObjecFactory接口
2.创建GenericObjectPool实例对,此时需要传入步骤1时的接口实例
完成这两部以后,就可调用GenericObjectPool实例的相关方法以池化的方式获取和使用相关对象了
, JedisPool和JedisFatory类都是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实例的相关方法以池化的方式获取和使用相关对象了
相关文章推荐
- 在Linux上(我的服务器是Ubuntu) 用redis-trib.rb搭建redis集群,并在客户端使用spring-data-redis连接(亲测)
- spring-data-redis使用自定义序列化数据 使用 protobuf
- 【Redis基础】SSH 中Spring-data-redis使用体验
- 使用spring-data-redis做缓存
- 使用spring-data-redis操作Redis的Sentinel
- jedis,spring-redis-data 整合使用,版本问题异常以及解决。
- 在spring data jpa中使用redis的通用list及entity存储方法
- 使用Spring-data-redis操作Redis的Sentinel
- spring-data-redis 使用
- Redis 一二事 - 在spring中使用jedis 连接调试单机redis以及集群redis
- 分析“备忘使用spring-data-redis中的redistemplate的一个大坑”
- spring-data-redis 使用过程中需要注意的一点
- 使用spring-data-redis开发redis应用
- 使用kryo作为spring data redis的序列化器
- Spring+redis,spring-data-redis使用
- spring-data-redis使用RedisTemplate模板存储时键值与预设不一致的解决方法
- spring data redis使用示例
- spring-data-redis用配置类连接时,抛异常Cannot get Jedis connection; nested exception is java.lang.NullPointerEx
- 如何用SpringData连接Redis简单测试
- spring-data-redis 使用