
net.wicp.tams.common.redis.pool.JedisSentinelPoolTams Maven / Gradle / Ivy
The newest version!
/*
* **********************************************************************
* Copyright (c) 2022 .
* All rights reserved.
* 项目名称:common
* 项目描述:公共的工具集
* 版权说明:本软件属andy.zhou([email protected])所有。
* ***********************************************************************
*/
package net.wicp.tams.common.redis.pool;
import java.util.Map;
import java.util.Set;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import net.wicp.tams.common.Conf;
import net.wicp.tams.common.redis.RedisAssit;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisSentinelPool;
public class JedisSentinelPoolTams extends AbsPool {
private volatile JedisSentinelPool jedisSentinelPool;
private final String serverName;
public JedisSentinelPoolTams() {
this.serverName = "default";
}
public JedisSentinelPoolTams(String serverName, String masterName, Set sentinels,
final GenericObjectPoolConfig poolConfig, final int timeout) {
this.serverName = serverName;
poolConfig.setJmxEnabled(true);
poolConfig.setJmxNamePrefix("jedis-pool");
Map data = Conf
.getAllConfigValues(String.format("%s.%s", "common.redis.redisserver", serverName),true);
// 第一个timeout Jedis连接超时(单位:毫秒),第二个timeout读写超时(单位:毫秒)
JedisSentinelPool jedisSentinelPool = new JedisSentinelPool(masterName, sentinels, poolConfig, timeout, timeout,
data.get("password"), RedisAssit.getConfigInt(data, "defaultDb"),
data.get( "clientName"));
setJedisSentinelPool(jedisSentinelPool);
}
public void setJedisSentinelPool(JedisSentinelPool jedisSentinelPool) {
doLeak(this.serverName, jedisSentinelPool);
this.jedisSentinelPool = jedisSentinelPool;
}
@Override
public Jedis getResource() {
return this.jedisSentinelPool.getResource();
}
@Override
public void destroy() {
this.jedisSentinelPool.destroy();
this.jedisSentinelPool = null;
}
@Override
public boolean isInit() {
return this.jedisSentinelPool != null;
}
@Override
public void returnResource(Jedis jedis) {
if(this.jedisSentinelPool!=null) {
this.jedisSentinelPool.returnResource(jedis);
}
}
@Override
public void returnBrokenResource(Jedis jedis) {
if(this.jedisSentinelPool!=null) {
this.jedisSentinelPool.returnBrokenResource(jedis);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy