Redis的高可用方案的實現:主從切換以及虛擬IP或客戶端
從Redis 2.8開始加入對Sentinel機制從而實現了服務器端的主從切換,但目前尚未發現實現虛擬IP或客戶端切換方案
Redis-Sentinel是Redis官方推薦的高可用性(HA)解決方案
當用Redis做Master-slave的高可用方案時,假如master宕機了,Redis本身(包括它的很多客戶端)都沒有實現自動進行主備切換,
而Redis-sentinel本身也是一個獨立運行的進程,它能監控多個master-slave集群,發現master宕機后能進行自動切換。
功能:
-
監控redis是否按照預期良好地運行;
-
如果發現某個redis節點運行出現狀況,能夠通知另外一個進程;
-
能夠進行自動切換。當一個master節點不可用時,能夠選舉出master的多個slave(如果有超過一個slave的話)中的一個來作為新的master,其它的slave節點會將它所追隨的master的地址改為被提升為master的slave的新地址
只使用單個sentinel進程來監控redis集群是不可靠的,當sentinel進程宕掉后整個集群系統將無法按照預期的方式運行。所以有必要將sentinel集群
好處:
-
解決單點問題;
-
有多個sentinel,redis的客戶端可以隨意地連接任意一個sentinel來獲得關於redis集群中的信息