net.wicp.tams.common.redis.RedisAssit Maven / Gradle / Ivy
package net.wicp.tams.common.redis;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import net.wicp.tams.common.Conf;
import net.wicp.tams.common.apiext.StringUtil;
import net.wicp.tams.common.redis.builder.RedisSentinelBuilderTams;
import net.wicp.tams.common.redis.builder.RedisStandaloneBuilderTams;
import net.wicp.tams.common.redis.pool.JedisPoolTams;
import net.wicp.tams.common.redis.pool.JedisSentinelPoolTams;
import redis.clients.jedis.Jedis;
public abstract class RedisAssit {
public static JedisPoolTams standalone(String host, int port, GenericObjectPoolConfig poolConfig) {
GenericObjectPoolConfig poolConfigtrue = poolConfig == null ? initDefaultConfig() : poolConfig;
host = StringUtil.hasNull(host, Conf.get("common.redis.redisserver.host"));
port = port <= 0 ? Conf.getInt("common.redis.redisserver.port") : port;
RedisStandaloneBuilderTams build = RedisStandaloneBuilderTams.builder().host(host).port(port)
.timeout(Conf.getInt("common.redis.redisserver.timeout")).poolConfig(poolConfigtrue).build();
return build.getJedisPoolTams();
}
public static JedisPoolTams standalone() {
return standalone(null, 0, null);
}
public static JedisSentinelPoolTams sentinel(String masterName, String[] sentinelAry,
GenericObjectPoolConfig poolConfig) {
GenericObjectPoolConfig poolConfigtrue = poolConfig == null ? initDefaultConfig() : poolConfig;
Set sentinels = new HashSet<>();
for (String sentinel : sentinelAry) {
String[] sentinelArr = sentinel.split(":");
if (sentinelArr.length == 2) {
sentinels.add(sentinel);
}
}
RedisSentinelBuilderTams build = RedisSentinelBuilderTams.builder().masterName(masterName).sentinels(sentinels)
.poolConfig(poolConfigtrue).build();
return build.getJedisSentinelPoolTams();
}
public static JedisSentinelPoolTams sentinel(String masterName, String[] sentinelAry) {
return sentinel(masterName, sentinelAry, null);
}
private static GenericObjectPoolConfig initDefaultConfig() {
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig<>();
poolConfig.setMaxWaitMillis(Conf.getInt("common.redis.redisserver.maxWaitMillis"));
poolConfig.setMaxTotal(Conf.getInt("common.redis.redisserver.maxTotal"));
poolConfig.setMaxIdle(Conf.getInt("common.redis.redisserver.maxIdle"));
poolConfig.setTestOnBorrow(Conf.getBoolean("common.redis.redisserver.testOnBorrow"));
poolConfig.setTestWhileIdle(Conf.getBoolean("common.redis.redisserver.testWhileIdle"));
poolConfig.setMinIdle(Conf.getInt("common.redis.redisserver.minIdle"));
poolConfig
.setSoftMinEvictableIdleTimeMillis(Conf.getInt("common.redis.redisserver.minEvictableIdleTimeMillis"));
poolConfig.setSoftMinEvictableIdleTimeMillis(
Conf.getInt("common.redis.redisserver.softMinEvictableIdleTimeMillis"));
poolConfig.setNumTestsPerEvictionRun(Conf.getInt("common.redis.redisserver.numTestsPerEvictionRun"));
poolConfig.setTestOnReturn(Conf.getBoolean("common.redis.redisserver.testOnReturn"));
poolConfig.setTimeBetweenEvictionRunsMillis(
Conf.getInt("common.redis.redisserver.timeBetweenEvictionRunsMillis"));
poolConfig.setBlockWhenExhausted(Conf.getBoolean("common.redis.redisserver.blockWhenExhausted"));
return poolConfig;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy