【Redis】Redis學習(四) Redis Sentinel模式詳解


  

  主從模式的弊端就是不具備高可用性,當master掛掉以后,Redis將不能再對外提供寫入操作,因此sentinel應運而生。

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

  1. 監控:能持續監控Redis的主從實例是否正常工作;
  2. 通知:當被監控的Redis實例出問題時,能通過API通知系統管理員或其他程序;
  3. 自動故障恢復:如果主實例無法正常工作,Sentinel將啟動故障恢復機制把一個從實例提升為主實例,其他的從實例將會被重新配置到新的主實例,且應用程序會得到一個更換新地址的通知。
  4. 配置提供:因為sentinel保存着Redis主從的信息,所以Redis可以從sentinel那獲得所有的配置信息。

  Redis Sentinel是一個分布式系統,可以部署多個Sentinel實例來監控同一組Redis實例,當然只要有一個Sentinel實例就可以完成上面的功能,當然一個sentinel實例也是不具備高可用性,所以一般也會搭建sentinel集群。

一、Redis sentinel模式搭建

  https://redis.io/topics/sentinel講的很詳細了,照做即可,這還有中文版的,不過版本低了一點,依然可以用,地址為:http://doc.redisfans.com/topic/sentinel.html

二、Redis sentinel的Java客戶端連接

  sentinel就可以滿足一般生產的需求了,所以開發過程中可以使用:

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();

  這樣就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM