Java Code Examples for redis.clients.jedis.JedisPoolConfig#setTimeBetweenEvictionRunsMillis()

The following examples show how to use redis.clients.jedis.JedisPoolConfig#setTimeBetweenEvictionRunsMillis() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RedisUtils.java    From nifi with Apache License 2.0 7 votes vote down vote up
private static JedisPoolConfig createJedisPoolConfig(final PropertyContext context) {
    final JedisPoolConfig poolConfig = new JedisPoolConfig();
    poolConfig.setMaxTotal(context.getProperty(RedisUtils.POOL_MAX_TOTAL).asInteger());
    poolConfig.setMaxIdle(context.getProperty(RedisUtils.POOL_MAX_IDLE).asInteger());
    poolConfig.setMinIdle(context.getProperty(RedisUtils.POOL_MIN_IDLE).asInteger());
    poolConfig.setBlockWhenExhausted(context.getProperty(RedisUtils.POOL_BLOCK_WHEN_EXHAUSTED).asBoolean());
    poolConfig.setMaxWaitMillis(context.getProperty(RedisUtils.POOL_MAX_WAIT_TIME).asTimePeriod(TimeUnit.MILLISECONDS));
    poolConfig.setMinEvictableIdleTimeMillis(context.getProperty(RedisUtils.POOL_MIN_EVICTABLE_IDLE_TIME).asTimePeriod(TimeUnit.MILLISECONDS));
    poolConfig.setTimeBetweenEvictionRunsMillis(context.getProperty(RedisUtils.POOL_TIME_BETWEEN_EVICTION_RUNS).asTimePeriod(TimeUnit.MILLISECONDS));
    poolConfig.setNumTestsPerEvictionRun(context.getProperty(RedisUtils.POOL_NUM_TESTS_PER_EVICTION_RUN).asInteger());
    poolConfig.setTestOnCreate(context.getProperty(RedisUtils.POOL_TEST_ON_CREATE).asBoolean());
    poolConfig.setTestOnBorrow(context.getProperty(RedisUtils.POOL_TEST_ON_BORROW).asBoolean());
    poolConfig.setTestOnReturn(context.getProperty(RedisUtils.POOL_TEST_ON_RETURN).asBoolean());
    poolConfig.setTestWhileIdle(context.getProperty(RedisUtils.POOL_TEST_WHILE_IDLE).asBoolean());
    return poolConfig;
}
 
Example 2
Source File: RedisConfig.java    From springboot-learn with MIT License 6 votes vote down vote up
@Bean(name = "jedis.pool.config")
public JedisPoolConfig jedisPoolConfig(@Value("${spring.redis.jedis.pool.maxTotal}") int maxTotal,
                                       @Value("${spring.redis.jedis.pool.maxIdle}") int maxIdle,
                                       @Value("${spring.redis.jedis.pool.maxWaitMillis}") int maxWaitMillis,
                                       @Value("${spring.redis.jedis.pool.testOnBorrow}") boolean testOnBorrow,
                                       @Value("${spring.redis.jedis.pool.testOnReturn}") boolean testOnReturn,
                                       @Value("${spring.redis.jedis.pool.blockWhenExhausted}") boolean blockWhenExhausted,
                                       @Value("${spring.redis.jedis.pool.testWhileIdle}") boolean testWhileIdle,
                                       @Value("${spring.redis.jedis.pool.timeBetweenEvictionRunsMillis}") long timeBetweenEvictionRunsMillis,
                                       @Value("${spring.redis.jedis.pool.numTestsPerEvictionRun}") int numTestsPerEvictionRun,
                                       @Value("${spring.redis.jedis.pool.minEvictableIdleTimeMillis}") long minEvictableIdleTimeMillis) {
    JedisPoolConfig config = new JedisPoolConfig();
    config.setMaxTotal(maxTotal);
    config.setMaxIdle(maxIdle);
    config.setMaxWaitMillis(maxWaitMillis);
    config.setTestOnBorrow(testOnBorrow);
    config.setTestOnReturn(testOnReturn);
    config.setBlockWhenExhausted(blockWhenExhausted);
    config.setTestWhileIdle(testWhileIdle);
    config.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
    config.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
    config.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);

    return config;
}
 
Example 3
Source File: RedisUtils.java    From J2Cache with Apache License 2.0 6 votes vote down vote up
/**
 * 初始化 Redis 连接池
 * @param props j2cache.properties
 * @param prefix configuration prefix
 * @return redis connection pool configuration object
 */
public final static JedisPoolConfig newPoolConfig(Properties props, String prefix) {
    JedisPoolConfig cfg = new JedisPoolConfig();
    cfg.setMaxTotal(Integer.valueOf(props.getProperty(key(prefix,"maxTotal"), "-1")));
    cfg.setMaxIdle(Integer.valueOf(props.getProperty(key(prefix,"maxIdle"), "100")));
    cfg.setMaxWaitMillis(Integer.valueOf(props.getProperty(key(prefix,"maxWaitMillis"), "100")));
    cfg.setMinEvictableIdleTimeMillis(Integer.valueOf(props.getProperty(key(prefix,"minEvictableIdleTimeMillis"), "864000000")));
    cfg.setMinIdle(Integer.valueOf(props.getProperty(key(prefix,"minIdle"), "10")));
    cfg.setNumTestsPerEvictionRun(Integer.valueOf(props.getProperty(key(prefix,"numTestsPerEvictionRun"), "10")));
    cfg.setLifo(Boolean.valueOf(props.getProperty(key(prefix,"lifo"), "false")));
    cfg.setSoftMinEvictableIdleTimeMillis(Integer.valueOf((String)props.getOrDefault(key(prefix,"softMinEvictableIdleTimeMillis"), "10")));
    cfg.setTestOnBorrow(Boolean.valueOf(props.getProperty(key(prefix,"testOnBorrow"), "true")));
    cfg.setTestOnReturn(Boolean.valueOf(props.getProperty(key(prefix,"testOnReturn"), "false")));
    cfg.setTestWhileIdle(Boolean.valueOf(props.getProperty(key(prefix,"testWhileIdle"), "true")));
    cfg.setTimeBetweenEvictionRunsMillis(Integer.valueOf(props.getProperty(key(prefix,"timeBetweenEvictionRunsMillis"), "300000")));
    cfg.setBlockWhenExhausted(Boolean.valueOf(props.getProperty(key(prefix,"blockWhenExhausted"), "false")));
    return cfg;
}
 
Example 4
Source File: RedisCommonAbstractTest.java    From ignite with Apache License 2.0 6 votes vote down vote up
/** {@inheritDoc} */
@Override protected void beforeTestsStarted() throws Exception {
    startGrids(gridCount());

    JedisPoolConfig jedisPoolCfg = new JedisPoolConfig();

    jedisPoolCfg.setMaxWaitMillis(20000);
    jedisPoolCfg.setMaxIdle(100);
    jedisPoolCfg.setMinIdle(1);
    jedisPoolCfg.setNumTestsPerEvictionRun(10);
    jedisPoolCfg.setTestOnBorrow(true);
    jedisPoolCfg.setTestOnReturn(true);
    jedisPoolCfg.setTestWhileIdle(true);
    jedisPoolCfg.setTimeBetweenEvictionRunsMillis(30000);

    pool = new JedisPool(jedisPoolCfg, HOST, PORT, 10000);
}
 
Example 5
Source File: JedisFactory.java    From moon-api-gateway with MIT License 6 votes vote down vote up
@Override
public void afterPropertiesSet() {
    JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
    jedisPoolConfig.setMaxTotal(jedisConfig.getMaxTotal());
    jedisPoolConfig.setMaxWaitMillis(jedisConfig.getMaxWaitMillis());
    jedisPoolConfig.setMaxIdle(jedisConfig.getMaxIdle());
    jedisPoolConfig.setMinIdle(jedisConfig.getMinIdle());
    jedisPoolConfig.setNumTestsPerEvictionRun(jedisConfig.getNumTestsPerEvictionRun());
    jedisPoolConfig.setTimeBetweenEvictionRunsMillis(jedisConfig.getTimeBetweenEvictionRunsMillis());
    jedisPoolConfig.setBlockWhenExhausted(jedisConfig.isBlockWhenExhausted());
    jedisPoolConfig.setTestOnBorrow(jedisConfig.isTestOnBorrow());
    jedisPoolConfig.setTestOnReturn(jedisConfig.isTestOnReturn());
    jedisPoolConfig.setTestWhileIdle(jedisConfig.isTestWhileIdle());

    String jedisHost = jedisConfig.getHost();
    int jedisPort = jedisConfig.getPort();
    int jedisTimeout = jedisConfig.getTimeout();
    int jedisDatabase = jedisConfig.getDatabase();

    jedisPool = new JedisPool(jedisPoolConfig, jedisHost, jedisPort, jedisTimeout, null, jedisDatabase);
}
 
Example 6
Source File: RedisConnectionPoolConfig.java    From netty-cookbook with Apache License 2.0 5 votes vote down vote up
public JedisPoolConfig getJedisPoolConfig() {
	JedisPoolConfig config = new JedisPoolConfig();
	config.setMaxTotal(this.maxTotal);
	config.setMaxIdle(this.maxIdle);
	config.setMinIdle(this.minIdle);
	config.setMaxWaitMillis(this.maxWaitMillis);
	config.setNumTestsPerEvictionRun(this.numTestsPerEvictionRun);
	config.setTestOnBorrow(this.testOnBorrow);
	config.setTestOnReturn(this.testOnReturn);
	config.setTestWhileIdle(this.testWhileIdle);
	config.setTimeBetweenEvictionRunsMillis(this.timeBetweenEvictionRunsMillis);
	return config;
}
 
Example 7
Source File: JedisIntegrationTest.java    From tutorials with MIT License 5 votes vote down vote up
private JedisPoolConfig buildPoolConfig() {
    final JedisPoolConfig poolConfig = new JedisPoolConfig();
    poolConfig.setMaxTotal(128);
    poolConfig.setMaxIdle(128);
    poolConfig.setMinIdle(16);
    poolConfig.setTestOnBorrow(true);
    poolConfig.setTestOnReturn(true);
    poolConfig.setTestWhileIdle(true);
    poolConfig.setMinEvictableIdleTimeMillis(Duration.ofSeconds(60).toMillis());
    poolConfig.setTimeBetweenEvictionRunsMillis(Duration.ofSeconds(30).toMillis());
    poolConfig.setNumTestsPerEvictionRun(3);
    poolConfig.setBlockWhenExhausted(true);
    return poolConfig;
}
 
Example 8
Source File: RedisConnectionPoolConfig.java    From netty-cookbook with Apache License 2.0 5 votes vote down vote up
public JedisPoolConfig getJedisPoolConfig() {
	JedisPoolConfig config = new JedisPoolConfig();
	config.setMaxTotal(this.maxTotal);
	config.setMaxIdle(this.maxIdle);
	config.setMinIdle(this.minIdle);
	config.setMaxWaitMillis(this.maxWaitMillis);
	config.setNumTestsPerEvictionRun(this.numTestsPerEvictionRun);
	config.setTestOnBorrow(this.testOnBorrow);
	config.setTestOnReturn(this.testOnReturn);
	config.setTestWhileIdle(this.testWhileIdle);
	config.setTimeBetweenEvictionRunsMillis(this.timeBetweenEvictionRunsMillis);
	return config;
}
 
Example 9
Source File: RedisConnectionPoolConfig.java    From netty-cookbook with Apache License 2.0 5 votes vote down vote up
public JedisPoolConfig getJedisPoolConfig() {
	JedisPoolConfig config = new JedisPoolConfig();
	config.setMaxTotal(this.maxTotal);
	config.setMaxIdle(this.maxIdle);
	config.setMinIdle(this.minIdle);
	config.setMaxWaitMillis(this.maxWaitMillis);
	config.setNumTestsPerEvictionRun(this.numTestsPerEvictionRun);
	config.setTestOnBorrow(this.testOnBorrow);
	config.setTestOnReturn(this.testOnReturn);
	config.setTestWhileIdle(this.testWhileIdle);
	config.setTimeBetweenEvictionRunsMillis(this.timeBetweenEvictionRunsMillis);
	return config;
}
 
Example 10
Source File: RedisConnectionPoolConfig.java    From netty-cookbook with Apache License 2.0 5 votes vote down vote up
public JedisPoolConfig getJedisPoolConfig() {
	JedisPoolConfig config = new JedisPoolConfig();
	config.setMaxTotal(this.maxTotal);
	config.setMaxIdle(this.maxIdle);
	config.setMinIdle(this.minIdle);
	config.setMaxWaitMillis(this.maxWaitMillis);
	config.setNumTestsPerEvictionRun(this.numTestsPerEvictionRun);
	config.setTestOnBorrow(this.testOnBorrow);
	config.setTestOnReturn(this.testOnReturn);
	config.setTestWhileIdle(this.testWhileIdle);
	config.setTimeBetweenEvictionRunsMillis(this.timeBetweenEvictionRunsMillis);
	return config;
}
 
Example 11
Source File: RedisPools.java    From pinlater with Apache License 2.0 5 votes vote down vote up
private static JedisPool createRedisPool(
    String host, int port, int poolSize, int maxWaitMillis, int socketTimeoutMillis) {
  JedisPoolConfig config = new JedisPoolConfig();
  config.setMaxWait(maxWaitMillis);
  config.setMaxActive(poolSize);
  config.setMaxIdle(poolSize);
  // Deal with idle connection eviction.
  config.setTestOnBorrow(false);
  config.setTestOnReturn(false);
  config.setTestWhileIdle(true);
  config.setMinEvictableIdleTimeMillis(5 * 60 * 1000);
  config.setTimeBetweenEvictionRunsMillis(3 * 60 * 1000);
  config.setNumTestsPerEvictionRun(poolSize);

  JedisPool pool = new JedisPool(config, host, port, socketTimeoutMillis);
  // Force connection pool initialization.
  Jedis jedis = null;
  try {
    jedis = pool.getResource();
  } catch (JedisConnectionException e) {
    LOG.error(
        String.format("Failed to get a redis connection when creating redis pool, "
            + "host: %s, port: %d", host, port),
        e);
  } finally {
    pool.returnResource(jedis);
  }
  return pool;
}
 
Example 12
Source File: DefaultRedisConfiguration.java    From spring-redis-plugin with Apache License 2.0 5 votes vote down vote up
@Bean
public JedisPoolConfig defaultJedisPoolConfig() {
    JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
    jedisPoolConfig.setMaxTotal(env.getProperty("redis.maxTotal", Integer.class, 200));
    jedisPoolConfig.setMaxIdle(env.getProperty("redis.maxIdle", Integer.class, 20));
    jedisPoolConfig.setMinIdle(env.getProperty("redis.minIdle", Integer.class, 0));
    jedisPoolConfig.setMaxWaitMillis(env.getProperty("redis.maxWait", Integer.class, 3000));
    jedisPoolConfig.setMinEvictableIdleTimeMillis(env.getProperty("redis.minEvictableIdleTimeMillis", Long.class, 60000L));
    jedisPoolConfig.setTimeBetweenEvictionRunsMillis(env.getProperty("redis.timeBetweenEvictionRunsMillis", Long.class, 120000L));
    jedisPoolConfig.setNumTestsPerEvictionRun(env.getProperty("redis.numTestsPerEvictionRun", Integer.class, 1));
    jedisPoolConfig.setTestOnBorrow(env.getProperty("redis.testOnBorrow", Boolean.class, false));
    jedisPoolConfig.setTestOnReturn(env.getProperty("redis.testOnReturn", Boolean.class, false));
    jedisPoolConfig.setTestWhileIdle(env.getProperty("redis.testWhileIdle", Boolean.class, true));
    return jedisPoolConfig;
}
 
Example 13
Source File: DefaultShardedRedisConfiguration.java    From spring-redis-plugin with Apache License 2.0 5 votes vote down vote up
@Bean
public JedisPoolConfig defaultJedisPoolConfig() {
    JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
    jedisPoolConfig.setMaxTotal(env.getProperty("redis.maxTotal", Integer.class, 200));
    jedisPoolConfig.setMaxIdle(env.getProperty("redis.maxIdle", Integer.class, 20));
    jedisPoolConfig.setMinIdle(env.getProperty("redis.minIdle", Integer.class, 0));
    jedisPoolConfig.setMaxWaitMillis(env.getProperty("redis.maxWait", Integer.class, 3000));
    jedisPoolConfig.setMinEvictableIdleTimeMillis(env.getProperty("redis.minEvictableIdleTimeMillis", Long.class, 60000L));
    jedisPoolConfig.setTimeBetweenEvictionRunsMillis(env.getProperty("redis.timeBetweenEvictionRunsMillis", Long.class, 120000L));
    jedisPoolConfig.setNumTestsPerEvictionRun(env.getProperty("redis.numTestsPerEvictionRun", Integer.class, 1));
    jedisPoolConfig.setTestOnBorrow(env.getProperty("redis.testOnBorrow", Boolean.class, false));
    jedisPoolConfig.setTestOnReturn(env.getProperty("redis.testOnReturn", Boolean.class, false));
    jedisPoolConfig.setTestWhileIdle(env.getProperty("redis.testWhileIdle", Boolean.class, true));
    return jedisPoolConfig;
}
 
Example 14
Source File: RGTConfigService.java    From redis-game-transaction with Apache License 2.0 5 votes vote down vote up
public JedisPoolConfig initRediPoolConfig() throws DataConversionException {
    Element element = JdomUtils.getRootElemet(FileUtil.getConfigURL(GlobalConstants.RedisConfigFile.REDIS_POOL_CONIFG).getFile());
    JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
    int maxIdle = element.getAttribute("maxIdle").getIntValue();
    boolean testWhileIdle = element.getAttribute("testWhileIdle").getBooleanValue();
    int timeBetweenEvictionRunsMillis = element.getAttribute("timeBetweenEvictionRunsMillis").getIntValue();
    int numTestsPerEvictionRun = element.getAttribute("numTestsPerEvictionRun").getIntValue();
    int minEvictableIdleTimeMillis = element.getAttribute("minEvictableIdleTimeMillis").getIntValue();
    jedisPoolConfig.setTestWhileIdle(testWhileIdle);
    jedisPoolConfig.setMaxIdle(maxIdle);
    jedisPoolConfig.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
    jedisPoolConfig.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
    jedisPoolConfig.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
    return jedisPoolConfig;
}
 
Example 15
Source File: Client.java    From JRedisBloom with BSD 2-Clause "Simplified" License 5 votes vote down vote up
/**
 * Create a new client to ReBloom
 * @param host the redis host
 * @param port the redis port
 * @param timeout connection timeout
 * @param poolSize the poolSize of JedisPool
 */
public Client(String host, int port, int timeout, int poolSize) {
  JedisPoolConfig conf = new JedisPoolConfig();
  conf.setMaxTotal(poolSize);
  conf.setTestOnBorrow(false);
  conf.setTestOnReturn(false);
  conf.setTestOnCreate(false);
  conf.setTestWhileIdle(false);
  conf.setMinEvictableIdleTimeMillis(60000);
  conf.setTimeBetweenEvictionRunsMillis(30000);
  conf.setNumTestsPerEvictionRun(-1);
  conf.setFairness(true);

  pool = new JedisPool(conf, host, port, timeout);
}
 
Example 16
Source File: RedisConfiguration.java    From heimdall with Apache License 2.0 5 votes vote down vote up
/**
 * Returns a configured {@link JedisPoolConfig}.
 * 
 * @return {@link JedisPoolConfig}
 */
public JedisPoolConfig jediPoolConfig() {
     final JedisPoolConfig poolConfig = new JedisPoolConfig();
     poolConfig.setMaxTotal(property.getRedis().getMaxTotal());
     poolConfig.setMaxIdle(property.getRedis().getMaxIdle());
     poolConfig.setMinIdle(property.getRedis().getMinIdle());
     poolConfig.setTestOnBorrow(property.getRedis().isTestOnBorrow());
     poolConfig.setTestOnReturn(property.getRedis().isTestOnReturn());
     poolConfig.setTestWhileIdle(property.getRedis().isTestWhileIdle());
     poolConfig.setMinEvictableIdleTimeMillis(Duration.ofSeconds(property.getRedis().getMinEvictableIdleTimeSeconds()).toMillis());
     poolConfig.setTimeBetweenEvictionRunsMillis(Duration.ofSeconds(property.getRedis().getTimeBetweenEvictionRunsSeconds()).toMillis());
     poolConfig.setNumTestsPerEvictionRun(property.getRedis().getNumTestsPerEvictionRun());
     poolConfig.setBlockWhenExhausted(property.getRedis().isBlockWhenExhausted());
     return poolConfig;
}
 
Example 17
Source File: RedisConfiguration.java    From heimdall with Apache License 2.0 5 votes vote down vote up
/**
 * Configures and returns a {@link JedisPoolConfig}.
 * 
 * @return {@link JedisPoolConfig}
 */
public JedisPoolConfig jediPoolConfig() {
     final JedisPoolConfig poolConfig = new JedisPoolConfig();
     poolConfig.setMaxTotal(property.getRedis().getMaxTotal());
     poolConfig.setMaxIdle(property.getRedis().getMaxIdle());
     poolConfig.setMinIdle(property.getRedis().getMinIdle());
     poolConfig.setTestOnBorrow(property.getRedis().isTestOnBorrow());
     poolConfig.setTestOnReturn(property.getRedis().isTestOnReturn());
     poolConfig.setTestWhileIdle(property.getRedis().isTestWhileIdle());
     poolConfig.setMinEvictableIdleTimeMillis(Duration.ofSeconds(property.getRedis().getMinEvictableIdleTimeSeconds()).toMillis());
     poolConfig.setTimeBetweenEvictionRunsMillis(Duration.ofSeconds(property.getRedis().getTimeBetweenEvictionRunsSeconds()).toMillis());
     poolConfig.setNumTestsPerEvictionRun(property.getRedis().getNumTestsPerEvictionRun());
     poolConfig.setBlockWhenExhausted(property.getRedis().isBlockWhenExhausted());
     return poolConfig;
}
 
Example 18
Source File: RedisConnectionPoolConfig.java    From netty-cookbook with Apache License 2.0 5 votes vote down vote up
public JedisPoolConfig getJedisPoolConfig() {
	JedisPoolConfig config = new JedisPoolConfig();
	config.setMaxTotal(this.maxTotal);
	config.setMaxIdle(this.maxIdle);
	config.setMinIdle(this.minIdle);
	config.setMaxWaitMillis(this.maxWaitMillis);
	config.setNumTestsPerEvictionRun(this.numTestsPerEvictionRun);
	config.setTestOnBorrow(this.testOnBorrow);
	config.setTestOnReturn(this.testOnReturn);
	config.setTestWhileIdle(this.testWhileIdle);
	config.setTimeBetweenEvictionRunsMillis(this.timeBetweenEvictionRunsMillis);
	return config;
}
 
Example 19
Source File: RedisSource.java    From ingestion with Apache License 2.0 4 votes vote down vote up
private void init() {
    try {
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        String prop;

        if((prop = poolProps.get(CONF_TESTONBORROW)) == null){
            poolConfig.setTestOnBorrow(DEFAULT_TESTONBORROW);
        } else {
            log.info("Setting testOnBorrow property to " + prop);
            poolConfig.setTestOnBorrow(Boolean.valueOf(prop));
        }
        if((prop = poolProps.get(CONF_MAXTOTAL)) == null){
            poolConfig.setMaxTotal(DEFAULT_MAXTOTAL);
        } else {
            log.info("Setting maxTotal property to " + prop);
            poolConfig.setMaxTotal(Integer.valueOf(prop));
        }
        if((prop = poolProps.get(CONF_MAXIDLE)) == null){
            poolConfig.setMaxTotal(DEFAULT_MAXIDLE);
        } else {
            log.info("Setting maxIdle property to " + prop);
            poolConfig.setMaxIdle(Integer.valueOf(prop));
        }
        if((prop = poolProps.get(CONF_MINIDLE)) == null){
            poolConfig.setMinIdle(DEFAULT_MINIDLE);
        } else {
            log.info("Setting minIdle property to " + prop);
            poolConfig.setMinIdle(Integer.valueOf(prop));
        }
        if((prop = poolProps.get(CONF_MAXWAITINMILLIS)) == null){
            poolConfig.setMaxWaitMillis(DEFAULT_MAXWAITINMILLIS);
        } else {
            log.info("Setting maxWaitInMillis property to " + prop);
            poolConfig.setMaxWaitMillis(Integer.valueOf(prop));
        }
        if((prop = poolProps.get(CONF_TESTWHILEIDLE)) == null){
            poolConfig.setTestWhileIdle(DEFAULT_TESTWHILEIDLE);
        } else {
            log.info("Setting testWhileIdle property to " + prop);
            poolConfig.setTestWhileIdle(Boolean.valueOf(prop));
        }
        if((prop = poolProps.get(CONF_TESTONRETURN)) == null){
            poolConfig.setTestOnReturn(DEFAULT_TESTONRETURN);
        } else {
            log.info("Setting testOnReturn property to " + prop);
            poolConfig.setTestOnReturn(Boolean.valueOf(prop));
        }
        if((prop = poolProps.get(CONF_MINEVICTABLEIDLETIMEINMILLIS)) == null){
            poolConfig.setMinEvictableIdleTimeMillis(DEFAULT_MINEVICTABLEIDLETIMEINMILLIS);
        } else {
            log.info("Setting minEvictableIdleTimeInMillis property to " + prop);
            poolConfig.setMinEvictableIdleTimeMillis(Integer.valueOf(prop));
        }
        if((prop = poolProps.get(CONF_TIMEBETWEETNEVICTIONRUNSMILLIS)) == null){
            poolConfig.setTimeBetweenEvictionRunsMillis(DEFAULT_TIMEBETWEETNEVICTIONRUNSMILLIS);
        } else {
            log.info("Setting timeBetweenEvictionRunMillis property to " + prop);
            poolConfig.setTimeBetweenEvictionRunsMillis(Integer.valueOf(prop));
        }
        if((prop = poolProps.get(CONF_NUMTESTSPEREVICTIONRUN)) == null){
            poolConfig.setNumTestsPerEvictionRun(DEFAULT_NUMTESTSPEREVICTIONRUN);
        } else {
            log.info("Setting numTestsPerEvictionRun property to " + prop);
            poolConfig.setNumTestsPerEvictionRun(Integer.valueOf(prop));
        }

        // create JEDIS pool
        this.jedisPool = new JedisPool(poolConfig, host, port);

    } catch (Exception e) {
        e.printStackTrace();
        System.exit(-1);
    }
}
 
Example 20
Source File: RedisRegistry.java    From dubbox with Apache License 2.0 4 votes vote down vote up
public RedisRegistry(URL url) {
    super(url);
    if (url.isAnyHost()) {
        throw new IllegalStateException("registry address == null");
    }
  //GenericObjectPool.Config config = new GenericObjectPool.Config();
    //config.testOnBorrow = url.getParameter("test.on.borrow", true);
    //config.testOnReturn = url.getParameter("test.on.return", false);
    //config.testWhileIdle = url.getParameter("test.while.idle", false);
	JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
	jedisPoolConfig.setTestOnBorrow(url.getParameter("test.on.borrow", true));
	jedisPoolConfig.setTestOnReturn(url.getParameter("test.on.return", false));
	jedisPoolConfig.setTestWhileIdle(url.getParameter("test.while.idle", false));
    if (url.getParameter("max.idle", 0) > 0)
        //config.maxIdle = url.getParameter("max.idle", 0);
    	jedisPoolConfig.setMaxIdle(url.getParameter("max.idle", 0));
    if (url.getParameter("min.idle", 0) > 0)
        //config.minIdle = url.getParameter("min.idle", 0);
		jedisPoolConfig.setMinIdle(url.getParameter("min.idle", 0));
    if (url.getParameter("max.active", 0) > 0)
        //config.maxActive = url.getParameter("max.active", 0);
    	jedisPoolConfig.setMaxTotal(url.getParameter("max.active", 0));
    if (url.getParameter("max.wait", 0) > 0)
        //config.maxWait = url.getParameter("max.wait", 0);
    	jedisPoolConfig.setMaxWaitMillis(url.getParameter("max.wait", 0));
    if (url.getParameter("num.tests.per.eviction.run", 0) > 0)
        //config.numTestsPerEvictionRun = url.getParameter("num.tests.per.eviction.run", 0);
    	jedisPoolConfig.setNumTestsPerEvictionRun(url.getParameter("num.tests.per.eviction.run", 0));
    if (url.getParameter("time.between.eviction.runs.millis", 0) > 0)
        //config.timeBetweenEvictionRunsMillis = url.getParameter("time.between.eviction.runs.millis", 0);
    	jedisPoolConfig.setTimeBetweenEvictionRunsMillis(url.getParameter("time.between.eviction.runs.millis", 0));
    if (url.getParameter("min.evictable.idle.time.millis", 0) > 0)
        //config.minEvictableIdleTimeMillis = url.getParameter("min.evictable.idle.time.millis", 0);
    	jedisPoolConfig.setSoftMinEvictableIdleTimeMillis(url.getParameter("min.evictable.idle.time.millis", 0));

    String cluster = url.getParameter("cluster", "failover");
    if (! "failover".equals(cluster) && ! "replicate".equals(cluster)) {
        throw new IllegalArgumentException("Unsupported redis cluster: " + cluster + ". The redis cluster only supported failover or replicate.");
    }
    replicate = "replicate".equals(cluster);

    List<String> addresses = new ArrayList<String>();
    addresses.add(url.getAddress());
    String[] backups = url.getParameter(Constants.BACKUP_KEY, new String[0]);
    if (backups != null && backups.length > 0) {
        addresses.addAll(Arrays.asList(backups));
    }

    // 增加Redis密码支持
    String password = url.getPassword();
    for (String address : addresses) {
        int i = address.indexOf(':');
        String host;
        int port;
        if (i > 0) {
            host = address.substring(0, i);
            port = Integer.parseInt(address.substring(i + 1));
        } else {
            host = address;
            port = DEFAULT_REDIS_PORT;
        }
        if (StringUtils.isEmpty(password)) {
            this.jedisPools.put(address, new JedisPool(jedisPoolConfig, host, port,
                    url.getParameter(Constants.TIMEOUT_KEY, Constants.DEFAULT_TIMEOUT)));
        } else {
            // 使用密码连接。  此处要求备用redis与主要redis使用相同的密码
            this.jedisPools.put(address, new JedisPool(jedisPoolConfig, host, port,
                    url.getParameter(Constants.TIMEOUT_KEY, Constants.DEFAULT_TIMEOUT), password));
        }
    }

    this.reconnectPeriod = url.getParameter(Constants.REGISTRY_RECONNECT_PERIOD_KEY, Constants.DEFAULT_REGISTRY_RECONNECT_PERIOD);
    String group = url.getParameter(Constants.GROUP_KEY, DEFAULT_ROOT);
    if (! group.startsWith(Constants.PATH_SEPARATOR)) {
        group = Constants.PATH_SEPARATOR + group;
    }
    if (! group.endsWith(Constants.PATH_SEPARATOR)) {
        group = group + Constants.PATH_SEPARATOR;
    }
    this.root = group;

    this.expirePeriod = url.getParameter(Constants.SESSION_TIMEOUT_KEY, Constants.DEFAULT_SESSION_TIMEOUT);
    this.expireFuture = expireExecutor.scheduleWithFixedDelay(new Runnable() {
        public void run() {
            try {
                deferExpired(); // 延长过期时间
            } catch (Throwable t) { // 防御性容错
                logger.error("Unexpected exception occur at defer expire time, cause: " + t.getMessage(), t);
            }
        }
    }, expirePeriod / 2, expirePeriod / 2, TimeUnit.MILLISECONDS);
}