【Redis】Redis学习(四) Redis Sentinel模式详解

  

  主从模式的弊端就是不具有高可用性,当master挂掉之后,Redis将不能再对外提供写入操做,所以sentinel应运而生。html

  Redis Sentinel是Redis官方提供的集群管理工具,主要有三大功能:redis

  1. 监控:能持续监控Redis的主从实例是否正常工做;
  2. 通知:当被监控的Redis实例出问题时,能经过API通知系统管理员或其余程序;
  3. 自动故障恢复:若是主实例没法正常工做,Sentinel将启动故障恢复机制把一个从实例提高为主实例,其余的从实例将会被从新配置到新的主实例,且应用程序会获得一个更换新地址的通知。
  4. 配置提供:由于sentinel保存着Redis主从的信息,因此Redis能够从sentinel那得到全部的配置信息。

  Redis Sentinel是一个分布式系统,能够部署多个Sentinel实例来监控同一组Redis实例,固然只要有一个Sentinel实例就能够完成上面的功能,固然一个sentinel实例也是不具有高可用性,因此通常也会搭建sentinel集群。分布式

1、Redis sentinel模式搭建

  https://redis.io/topics/sentinel讲的很详细了,照作便可,这还有中文版的,不过版本低了一点,依然能够用,地址为:http://doc.redisfans.com/topic/sentinel.html工具

2、Redis sentinel的Java客户端链接

  sentinel就能够知足通常生产的需求了,因此开发过程当中可使用:spa

Set<String> sentinels = new HashSet<>(
    Arrays.asList("ip:port", "ip:port", "ip:port"));
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
//此处对poolConfig进行设置
JedisSentinelPool pool = new JedisSentinelPool("yiwangzhibujian", sentinels, poolConfig);
Jedis jedis = pool.getResource();
//使用jedis进行操做
//使用完直接close便可,会自动判断,若单个链接则关闭,在链接池内则归还
jedis.close();

  这样就能够了。code

相关文章
相关标签/搜索