jedispool redis哨兵_jedis哨兵模式的redis组(集群),连接池实现。(客户端分片)...

本文介绍了如何通过JedisSentinelPool扩展类建立与Redis哨兵集群的连接池,详细展示了类的构造方法及其实现过程,包括连接超时、密码设置、哨兵监听等功能。
摘要由CSDN通过智能技术生成

public class ShardedJedisSentinelPoolExt extends Pool{private static final int MAX_RETRY_SENTINEL = 10;private static final Logger logger = LoggerFactory.getLogger(ShardedJedisSentinelPoolExt.class);privateGenericObjectPoolConfig poolConfig;private inttimeout;private intsentinelRetry;privateString password;private SetmasterListeners;private volatile ListcurrentHostMasters;privateString redisMasterName;private static Pattern pattern = Pattern.compile("^[A-Z0-9_]{5,200}\\$[0-9]{2,4}-[0-9]{2,4}([A-Z0-9_]{5,200})?");public ShardedJedisSentinelPoolExt(Set masters, Setsentinels) {this(masters, sentinels, new GenericObjectPoolConfig(), 2000, (String)null, 0);

}public ShardedJedisSentinelPoolExt(Set masters, Setsentinels, String password) {this((Set)masters, (Set)sentinels, new GenericObjectPoolConfig(), 2000, password);

}public ShardedJedisSentinelPoolExt(GenericObjectPoolConfig poolConfig, Set masters, Setsentinels) {this(masters, sentinels, poolConfig, 2000, (String)null, 0);

}public ShardedJedisSentinelPoolExt(String mastersStr, String sentinelsStr, GenericObjectPoolConfig poolConfig, inttimeout, String password) {this.timeout = 2000;this.sentinelRetry = 0;this.masterListeners = newHashSet();

String[] splitMasters= mastersStr.split(",");

String[] splitSentinels= sentinelsStr.split(",");

List masters = newArrayList();

String[] var9=splitMasters;int var10 =splitMasters.length;for(int var11 = 0; var11 < var10; ++var11) {

String splitMaster=var9[var11];

List stringList =convertToMatch(splitMaster);if (stringList != null) {

masters.addAll(stringList);

}

}

Set setSentinels = newHashSet(Arrays.asList(splitSentinels));this.poolConfig =poolConfig;this.timeout =timeout;this.password =password;this.redisMasterName =mastersStr;

List masterList = this.initSentinels(setSentinels, masters);this.initPool(masterList);

}public ShardedJedisSentinelPoolExt(String mastersStr, Set sentinels, GenericObjectPoolConfig poolConfig, inttimeout, String password) {this.timeout = 2000;this.sentinelRetry = 0;this.masterListeners = newHashSet();

String[] splitMasters= mastersStr.split(",");

Set masters = newHashSet();

String[] var8=splitMasters;int var9 =splitMasters.length;for(int var10 = 0; var10 < var9; ++var10) {

String splitMaster=var8[var10];

List stringList =convertToMatch(splitMaster);if (stringList != null) {

masters.addAll(stringList);

}

}this.poolConfig =poolConfig;this.timeout =timeout;this.password =password;this.redisMasterName =mastersStr;

List masterStrList = newArrayList(masters);

Collections.sort(masterStrList);

List masterList = this.initSentinels(sentinels, masterStrList);this.initPool(masterList);

}public ShardedJedisSentinelPoolExt(Set masters, Set sentinels, GenericObjectPoolConfig poolConfig, inttimeout, String password) {this(masters, sentinels, poolConfig, timeout, password, 0);

}public ShardedJedisSentinelPoolExt(Set masters, Set sentinels, GenericObjectPoolConfig poolConfig, inttimeout) {this(masters, sentinels, poolConfig, timeout, (String)null, 0);

}public ShardedJedisSentinelPoolExt(Set masters, Setsentinels, GenericObjectPoolConfig poolConfig, String password) {this((Set)masters, (Set)sentinels, poolConfig, 2000, password);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值