Možná budete chtít zkusit Redis Sentinel, abyste toho dosáhli:
Redis Sentinel je systém navržený tak, aby pomáhal při správě instancí Redis. Provádí následující tři úkoly:
Monitorování . Sentinel neustále kontroluje, zda vaše instance master a slave fungují podle očekávání.
Oznámení . Sentinel může upozornit správce systému nebo jiný počítačový program prostřednictvím rozhraní API, že s jednou ze sledovaných instancí Redis není něco v pořádku.
Automatické převzetí služeb při selhání . Pokud master nefunguje podle očekávání, Sentinel může spustit proces převzetí služeb při selhání, kde je slave povýšen na master, ostatní další slave jsou překonfigurovány tak, aby používali nový master, a aplikace používající server Redis informovaly o nové adrese, kterou mají použít při připojování.
... nebo použít externí řešení, jako je Zookeeper a Jedis_failover:
JedisPool pool = new JedisPoolBuilder()
.withFailoverConfiguration(
"localhost:2838", // ZooKeeper cluster URL
Arrays.asList( // List of redis servers
new HostConfiguration("localhost", 7000),
new HostConfiguration("localhost", 7001)))
.build();
pool.withJedis(new JedisFunction() {
@Override
public void execute(final JedisActions jedis) throws Exception {
jedis.ping();
}
});
Podívejte se na tuto prezentaci Zookeeper + Redis.
[Aktualizovat] ... nebo čistě Java řešení s Jedis + Sentinel je použití wrapperu, který zpracovává události Redis Sentinel, viz SentinelBasedJedisPoolWrapper.