通常在代码中配置JedisConnectionFactory的方式如下:
@Bean(name = "jedisConnectionFactory")
public JedisConnectionFactory connectionFactory() {
JedisConnectionFactory jedis = new JedisConnectionFactory(sentinelConfig(master,nodes), poolCofig(maxIdle, maxTotal, maxWaitMillis, testOnBorrow));
// 初始化连接pool
jedis.afterPropertiesSet();
return jedis;
}
private RedisSentinelConfiguration sentinelConfig(String master,String nodes){
RedisSentinelConfiguration sentinel = new RedisSentinelConfiguration();
sentinel.setMaster(master);
String[] host = nodes.split(",");
for(String redisHost : host){
String[] item = redisHost.split(":");
String ip = item[0];
String port = item[1];
sentinel.addSentinel(new RedisNode(ip, Integer.parseInt(port)));
}
return sentinel;
}
2.接下来我们就来看看jedis.afterPropertiesSet(); 这段代码,初始化的逻辑也就是在这里面实现的。
public void afterPropertiesSet() {
if (shardInfo == null) {
shardInfo = new JedisShardInfo(hostName, port);
if (StringUtils.hasLength(password)) {
shardInfo.setPassword(password);
}
if (timeout &