Vielleicht möchten Sie Redis Sentinel ausprobieren, um dies zu erreichen:
Redis Sentinel ist ein System, das zur Verwaltung von Redis-Instanzen entwickelt wurde. Es führt die folgenden drei Aufgaben aus:
-
Überwachung . Sentinel überprüft ständig, ob Ihre Master- und Slave-Instanzen wie erwartet funktionieren.
-
Benachrichtigung . Sentinel kann den Systemadministrator oder ein anderes Computerprogramm über eine API benachrichtigen, dass etwas mit einer der überwachten Redis-Instanzen nicht stimmt.
-
Automatisches Failover . Wenn ein Master nicht wie erwartet funktioniert, kann Sentinel einen Failover-Prozess starten, bei dem ein Slave zum Master hochgestuft wird, die anderen zusätzlichen Slaves neu konfiguriert werden, um den neuen Master zu verwenden, und die Anwendungen, die den Redis-Server verwenden, über die neue Adresse informiert werden, die beim Verbinden verwendet werden soll /P>
... oder um eine externe Lösung wie Zookeeper und Jedis_failover zu verwenden:
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();
}
});
Siehe diese Präsentation von Zookeeper + Redis.
[Aktualisieren] ... oder eine reine Java-Lösung mit Jedis + Sentinel besteht darin, einen Wrapper zu verwenden, der Redis Sentinel-Ereignisse verarbeitet, siehe SentinelBasedJedisPoolWrapper.