in jetcache-starter/jetcache-autoconfigure/src/main/java/com/alicp/jetcache/autoconfigure/RedisAutoConfiguration.java [64:106]
protected CacheBuilder initCache(ConfigTree ct, String cacheAreaWithPrefix) {
Object jedisObj = parsePool(ct);
boolean readFromSlave = Boolean.parseBoolean(ct.getProperty("readFromSlave", "False"));
RedisCacheBuilder.RedisCacheBuilderImpl builder = RedisCacheBuilder.createRedisCacheBuilder()
.readFromSlave(readFromSlave);
if (jedisObj instanceof Pool) {
builder.jedisPool((Pool<Jedis>) jedisObj);
} else {
builder.jedis((UnifiedJedis) jedisObj);
}
ConfigTree slaves = ct.subTree("slaves.");
Set<String> slaveNames = slaves.directChildrenKeys();
if (slaveNames.size() > 0) {
List<Object> slavesObjects = new ArrayList<>();
int[] slavesWeights = new int[slaveNames.size()];
int i = 0;
for (String slaveName: slaveNames) {
ConfigTree slaveConfig = slaves.subTree(slaveName + ".");
slavesObjects.add(parsePool(slaveConfig));
slavesWeights[i] = Integer.parseInt(slaveConfig.getProperty("weight","100"));
i++;
}
builder.slaveReadWeights(slavesWeights);
if (slavesObjects.get(0) instanceof Pool) {
builder.jedisSlavePools(slavesObjects.toArray(new Pool[0]));
} else {
builder.slaves(slavesObjects.toArray(new UnifiedJedis[0]));
}
}
parseGeneralConfig(builder, ct);
// eg: "jedisPool.remote.default"
autoConfigureBeans.getCustomContainer().put("jedisPool." + cacheAreaWithPrefix, jedisObj);
if (jedisObj instanceof UnifiedJedis) {
autoConfigureBeans.getCustomContainer().put("jedis." + cacheAreaWithPrefix, jedisObj);
}
return builder;
}