• redis连接池(JedisPool)资源归还及timeout详解


     

    一、连接池资源类详解都在注释上

    package redis.v1.client.server;
    
    import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
    
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    
    public class JedisPoolClient {
    
    	private static JedisPool pool = null;
    	/**
    	 * 
    	 * 方法描述 构建redis连接池
    	 *
    	 * @return
    	 * 
    	 * @author yaomy
    	 * @date 2018年1月11日 下午4:53:07
    	 */
    	static {
    		if(pool == null) {
    			JedisPoolConfig config = new JedisPoolConfig();
    			//控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;
                //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
    			config.setMaxTotal(50);
    			//控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
    			config.setMaxIdle(5);
    			//表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;单位毫秒
    			//小于零:阻塞不确定的时间,  默认-1
    			config.setMaxWaitMillis(1000*100);
    			//在borrow(引入)一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
    			config.setTestOnBorrow(true);
    			//return 一个jedis实例给pool时,是否检查连接可用性(ping())
    			config.setTestOnReturn(true);
    			//connectionTimeout 连接超时(默认2000ms)
    			//soTimeout 响应超时(默认2000ms)
    			pool = new JedisPool(config, "127.0.0.1", 6379,  2000, "619868");
    		}
    	}
    	/**
    	 * 
    	 * 方法描述 获取Jedis实例
    	 *
    	 * @return
    	 * 
    	 * @author yaomy
    	 * @date 2018年1月11日 下午4:56:58
    	 */
    	public static Jedis getJedis() {
    		return pool.getResource();
    	}
    	/**
    	 * 
    	 * 方法描述 释放jedis连接资源
    	 *
    	 * @param jedis
    	 * 
    	 * @author yaomy
    	 * @date 2018年1月12日 上午10:36:07
    	 */
    	public static void returnResource(Jedis jedis) {
    		if(jedis != null) {
    			jedis.close();
    		}
    	}
    }
  • 相关阅读:
    Mac 下VirtualBox与Linux共享文件
    安装LAMP 环境Linux 16.04 + Apache2 + Php7.0
    Python调用OpenCV读写视频
    [tensorflow] FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated
    VS Qt国际化操作
    OpenCV--基于直线检测的文本图像倾斜校正
    Python调用OpenCV形态学
    Keras设置后端数据维度顺序
    Python调用OpenCV代码优化
    Python调用OpenCV滤波
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/11249333.html
Copyright © 2020-2023  润新知