
redis.embedded.RedisCluster Maven / Gradle / Ivy
package redis.embedded;
import redis.embedded.core.RedisClusterBuilder;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public final class RedisCluster implements Redis {
private final List sentinels = new LinkedList<>();
private final List servers = new LinkedList<>();
public RedisCluster(final List sentinels, final List servers) {
this.servers.addAll(servers);
this.sentinels.addAll(sentinels);
}
@Override
public boolean isActive() {
for (final Redis redis : sentinels) {
if (!redis.isActive()) {
return false;
}
}
for (final Redis redis : servers) {
if (!redis.isActive()) {
return false;
}
}
return true;
}
@Override
public void start() throws IOException {
for (final Redis redis : sentinels) {
redis.start();
}
for (final Redis redis : servers) {
redis.start();
}
}
@Override
public void stop() throws IOException {
for (final Redis redis : sentinels) {
redis.stop();
}
for (final Redis redis : servers) {
redis.stop();
}
}
@Override
public List ports() {
final List ports = new ArrayList<>();
ports.addAll(sentinelPorts());
ports.addAll(serverPorts());
return ports;
}
public List sentinels() {
return new LinkedList<>(sentinels);
}
public List sentinelPorts() {
final List ports = new ArrayList<>();
for (final Redis redis : sentinels) {
ports.addAll(redis.ports());
}
return ports;
}
public List servers() {
return new LinkedList<>(servers);
}
public List serverPorts() {
final List ports = new ArrayList<>();
for (final Redis redis : servers) {
ports.addAll(redis.ports());
}
return ports;
}
public static RedisClusterBuilder newRedisCluster() {
return new RedisClusterBuilder();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy