Redis
 sql >> база данни >  >> NoSQL >> Redis

Redis/Jedis няма единична точка на отказ и автоматично преминаване при отказ

Може да искате да опитате с Redis Sentinel, за да постигнете това:

Redis Sentinel е система, предназначена да помогне при управлението на екземпляри на Redis. Тя изпълнява следните три задачи:

  • Мониторинг . Sentinel непрекъснато проверява дали вашите главни и подчинени екземпляри работят според очакванията.

  • Известие . Sentinel може да уведоми системния администратор или друга компютърна програма чрез API, че нещо не е наред с един от наблюдаваните екземпляри на Redis.

  • Автоматично преминаване при отказ . Ако главен не работи според очакванията, Sentinel може да започне процес на отказ, при който подчинен е повишен в главен, другите допълнителни подчинени устройства се преконфигурират да използват новия главен, а приложенията, използващи Redis сървъра, информират за новия адрес, който да се използва при свързване.

... или да използвате външно решение като Zookeeper и 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();
    }
});

Вижте тази презентация на Zookeeper + Redis.

[Актуализиране] ... или чисто Java решение с Jedis + Sentinel е да използвате обвивка, която обработва събития на Redis Sentinel, вижте SentinelBasedJedisPoolWrapper.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Грешка в Redigo ScanStruct с time.Time

  2. Актуализиране на Redis списъка на стека на услугите

  3. Взаимодействие на Python Redis

  4. ruby resque без зареждане на релсите среда

  5. Rdbtools в Redis Conf18