zoukankan      html  css  js  c++  java
  • Redis JedisPool

    获取连接池,通常连接池为单例,这里使用 双端检测机制保证只有一个实例

    public class JedisPoolUtil {
    
        private static volatile JedisPool jedisPool = null;
    
        private JedisPoolUtil() {
        }
    
        public static JedisPool getJedisPoolInstance() {
            if (null == jedisPool) {
                synchronized (JedisPoolUtil.class) {   //这里使用双端检测设计模式
                    if (null == jedisPool) {
                        JedisPoolConfig poolConfig = new JedisPoolConfig();
                        //控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;如果赋值为-1,则表示不限制,
                        //如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted
                        poolConfig.setMaxActive(1000);
                        poolConfig.setMaxIdle(32);  //设置剩余连接各数,如果小于这个就会抛异常
                        //表示当borrow一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛JedisConnectionException
                        poolConfig.setMaxWait(100*1000); 
                        //获得一个jedis实例的时候是否检查连接可用性(ping()),如果为true,则得到的jedis实例均是可用的
                        poolConfig.setTestOnBorrow(true); 
                        jedisPool = new JedisPool(poolConfig, "192.168.1.201", 6379);
                    }
                }
            }
            return jedisPool;
        }
        /**
         * 释放
         * @param jedisPool 释放哪个池中
         * @param jedis        的哪个对象
         */
        public static void release(JedisPool jedisPool,Jedis jedis){
            if(null != jedis){
                jedisPool.returnResourceObject(jedis);
            }
        }
    
    }

     测试代码:

    public class TestJedisPool {
    
        public static void main(String[] args) {
            JedisPool jedisPool = JedisPoolUtil.getJedisPoolInstance();
    
            Jedis jedis = null;
    
            try {
                jedis = jedisPool.getResource();
    
                jedis.set("aa", "bb");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                JedisPoolUtil.release(jedisPool, jedis);
            }
        }
    
    }

    127.0.0.1:6379> get aa
    "bb"
    127.0.0.1:6379>

    JedisPoolCinfig

  • 相关阅读:
    高阶函数 map
    高阶函数_filter
    sort和sorted方法的使用
    一个函数作为另外一个函数的参数
    匿名函数
    jenkins+Xcode+蒲公英实现ipa自动打包发布全攻略
    iOS 画贝塞尔曲线 连续曲线 平滑曲线 曲线图表
    基于WebRTC实现iOS端音频降噪功能
    苹果ios音频的回声消除处理
    iOS实现录音功能
  • 原文地址:https://www.cnblogs.com/wq3435/p/6124246.html
Copyright © 2011-2022 走看看