Du vil måske prøve Redis Sentinel for at opnå det:
Redis Sentinel er et system designet til at hjælpe med at administrere Redis-forekomster. Det udfører følgende tre opgaver:
-
Overvågning . Sentinel tjekker konstant, om dine master- og slave-instanser fungerer som forventet.
-
Meddelelse . Sentinel kan meddele systemadministratoren eller et andet computerprogram via en API, at der er noget galt med en af de overvågede Redis-forekomster.
-
Automatisk failover . Hvis en master ikke fungerer som forventet, kan Sentinel starte en failover-proces, hvor en slave forfremmes til master, de andre ekstra slaver omkonfigureres til at bruge den nye master, og de applikationer, der bruger Redis-serveren, informeres om den nye adresse, der skal bruges ved tilslutning.
... eller for at bruge en ekstern løsning som Zookeeper og 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();
}
});
Se denne præsentation af Zookeeper + Redis.
[Opdatering] ... eller en ren Java-løsning med Jedis + Sentinel er at bruge en wrapper, der håndterer Redis Sentinel-begivenheder, se SentinelBasedJedisPoolWrapper.