zoukankan      html  css  js  c++  java
  • spring data redis使用1——连接的创建

    spring data redis集成了几个Redis客户端框架,JedisJRedis (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实例的相关方法以池化的方式获取和使用相关对象了

  • 相关阅读:
    实验四 主存空间的分配和回收
    学期总结
    实验三 进程调度模拟程序
    团队项目
    博客参考评论
    dos系统
    学习进度条
    了解和熟悉操作系统
    问题的思考和回答
    Python-关于脚本和冒泡算法
  • 原文地址:https://www.cnblogs.com/hzhuxin/p/6546826.html
Copyright © 2011-2022 走看看